Witam
http://pneumaticon.pl/sil/index.php Nie działa rozwijany select:
Index
<html>
<head>
<script type="text/javascript" src="/select.js"></script>
</head>
<body>
<form action="select.php" id="formularz" action="post">
<fieldset>
<legend>Kategorie</legend>
<select id="kategorie">
<option value="1">Kategoria 1</option>
<option value="2">Kategoria 2</option>
<option value="3">Kategoria 3</option>
<option value="4">Kategoria 4</option>
</select>
</fieldset>
</form>
</body>
</html>
select.php
<?
if(!empty($_GET['id'])) { $id = $_GET['id'];
switch($id) {
case 1:
'11'=>'Kategoria 1.1',
'12'=>'Kategoria 1.2',
'13'=>'Kategoria 1.3'
);
break;
case 2:
'21'=>'Kategoria 2.1',
'22'=>'Kategoria 2.2',
'23'=>'Kategoria 2.3',
'24'=>'Kategoria 2.4'
);
break;
case 3:
'31'=>'Kategoria 3.1',
'32'=>'Kategoria 3.2'
);
break;
case 4:
'41'=>'Kategoria 4.1',
'42'=>'Kategoria 4.2',
'43'=>'Kategoria 4.3'
);
break;
default:
$tab = array('0'=>'Brak'); break;
}
}
?>
select.js
//select.js
//skrypt będzie uruchamiany gdy strona się całkowicie załaduje
$(document).ready(function() {
//przypisanie akcji wywołania dodatkowej listy do zdarzenia typu change
$('#kategorie').live('change', function(){
var id = $(this).val();
//adres url do pliku PHP z kodem generującym dane w formacie JSON
var url = 'select.php?id='+id;
//jeśli istnieje już select-lista o id: podkategorie, to usuń ją
if($('#podkategorie').length>0)
$('#podkategorie').remove();
//metoda pobierająca dane JSON z podanego adresu w zmiennej url
$.getJSON(
url,
function(data){
//tworzymy nową, pustą listę select o id: podkategorie i ją dołączamy do formularza
select = '<select id="podkategorie"></select>';
$('#formularz fieldset').append(select);
var lista = $('#podkategorie');
//ukrywamy listę. Potrzebne to będzie do uzyskania animacji pojawienia się elementu na stronie
lista.hide();
//generowanie kolejnych opcji listy
var option = $('<option/>');
option
.attr
('value', key) .html(val)
.appendTo(lista);
});
//animacja pojawienia się elementu na stronie
lista.show('scale', 500);
},
'json'
);
})
})
Ten post edytował saviola15 1.07.2013, 14:21:34