Twoja droga jest w porządku, ale będzie potrzebować wielu wywołań ajax, aby wprowadzić wartości opcji dla wszystkich wybranych pól. Możesz to osiągnąć w jednym wywołaniu ajax przy użyciu JSON. Na stronie PHP możesz utworzyć tablicę, która będzie zawierać ciągi HTML reprezentujące opcje dla czterech pól wyboru. Następnie możesz przekonwertować tę tablicę na ciąg JSON za pomocą funkcji json_encode():
$arr=array("second"=>"<option>....</option>.......<option...</option>", //for second dropdown
"third"=>"<option>....</option>.......<option...</option>", //for third dropdown
"fourth"=>"<option>....</option>.......<option...</option>", //for fourth dropdown
"fifth"=>"<option>....</option>.......<option...</option>" //for fifth dropdown
);
echo json_encode($arr);
Następnie na stronie internetowej, dla pierwszego menu rozwijanego, możesz napisać funkcję jQuery w następujący sposób:
function loadOptions(){
jQuery.ajax({
success: function(data){
jQuery("select#field_2").html(data["second"]);
jQuery("select#field_3").html(data["third"]);
jQuery("select#field_4").html(data["fourth"]);
jQuery("select#field_5").html(data["fifth"]);
}
});
}
W ten sposób możesz załadować opcje dla wszystkich innych list rozwijanych w jednym wywołaniu ajax. Rozumiem, że potrzebujesz podobnej funkcjonalności dla innych list rozwijanych. Możesz napisać podobną funkcję również dla innych list rozwijanych. Oto uogólniona funkcja, w której podajesz numer listy rozwijanej, a funkcja zwróci opcje docelowych list rozwijanych. Na przykład, jeśli przejdziesz listę rozwijaną numer 2, funkcja zwróci opcje dla list rozwijanych 3, 4 i 5. Jeśli przejdziesz 3, zwróci opcje dla list rozwijanych 4 i 5 i tak dalej.
function loadOptions(selectNo){
jQuery.ajax({
data:{"selectNo",selectNo},
success: function(data){
switch(selectNo){
case 1: jQuery("select#field_2").html(data["second"]);
case 2: jQuery("select#field_3").html(data["third"]);
case 3: jQuery("select#field_4").html(data["fourth"]);
case 4: jQuery("select#field_5").html(data["fifth"]);
}
}
});
}
Na stronie PHP możesz napisać poniższy kod, aby zaimplementować tę funkcję:
$selectNo=$_GET["selectNo"];
$arr=array();
switch(selectNo){
case 1: $arr["second"]="<option>....</option>.......<option...</option>"; //for second dropdown
case 2: $arr["third"]="<option>....</option>.......<option...</option>"; //for third dropdown
case 3: $arr["fourth"]="<option>....</option>.......<option...</option>"; //for fourth dropdown
case 4: $arr["fifth"="<option>....</option>.......<option...</option>"; //for fifth dropdown
}
echo json_encode($arr);
Więcej informacji o JSON można znaleźć tutaj .