Maak eerst het no1 select-menu met php zoals je hierboven vermeldde. Voeg er dan een 'change' eventListener aan toe, zoals:
$('#select1').change(createSelect2);
function createSelect2(){
var option = $(this).find(':selected').val(),
dataString = "option="+option;
if(option != '')
{
$.ajax({
type : 'GET',
url : 'http://www.mitilini-trans.gr/demo/test.php',
data : dataString,
dataType : 'JSON',
cache: false,
success : function(data) {
var output = '<option value="">Select Sth</option>';
$.each(data.data, function(i,s){
var newOption = s;
output += '<option value="' + newOption + '">' + newOption + '</option>';
});
$('#select2').empty().append(output);
},
error: function(){
console.log("Ajax failed");
}
});
}
else
{
console.log("You have to select at least sth");
}
}
Nu heeft het no2 select-menu nieuwe opties volgens de geselecteerde 1 optie.
En het php-bestand:
<?php
header('Content-Type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');
if(isset($_GET['option']))
{
$option = $_GET['option'];
if($option == 1)
{
$data = array('Arsenal', 'Chelsea', 'Liverpool');
}
if($option == 2)
{
$data = array('Bayern', 'Dortmund', 'Gladbach');
}
if($option == 3)
{
$data = array('Aek', 'Panathinaikos', 'Olympiakos');
}
$reply = array('data' => $data, 'error' => false);
}
else
{
$reply = array('error' => true);
}
$json = json_encode($reply);
echo $json;
?>
Natuurlijk gebruik ik daar wat demo-gegevens, maar je kunt een sql-query maken, de $data-array daar vullen en ze als json met de juiste headers verzenden. Gebruik ten slotte wat meer js voor het tweede select-menu:
$('#select2').change(selectSelect2);
function selectSelect2(){
var option = $(this).find(':selected').val();
if(option != '')
{
alert("You selected: "+option);
}
else
{
alert("You have to select at least sth");
}
}
Kijk hier http://jsfiddle.net/g3Yqq/2/ een werkend voorbeeld