sql >> Databasteknik >  >> RDS >> Mysql

jquery för att fylla flera nedrullningsbara listor från databasen

Ditt sätt är bra - men det kommer att behöva många ajax-samtal för att få alternativvärden för alla utvalda fält. Du kan åstadkomma detta i ett enda ajax-samtal med JSON. På PHP-sidan kan du skapa en array som innehåller HTML-strängarna som representerar alternativen för de fyra urvalsrutorna. Sedan kan du konvertera denna array till en JSON-sträng med funktionen 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);

Sedan på webbsidan, för den första rullgardinsmenyn, kan du skriva en jQuery-funktion så här:

 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"]);
  }
});
}

På det här sättet kan du ladda alternativen för alla andra dropdowns i ett ajax-samtal. Jag förstår att du behöver en liknande funktion för andra rullgardinsmenyer också. Du kan också skriva liknande funktion för andra rullgardinsmenyer. Här är en generaliserad funktion, där du skickar rullgardinsnumret och funktionen returnerar alternativen för riktade rullgardinsmenyer. Till exempel, om du passerar dropdown nummer 2, kommer funktionen att returnera alternativ för dropdown 3, 4 och 5. Om du klarar 3, kommer den att returnera alternativ för dropdown 4 och 5, och så vidare.

 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"]);
     }
  }
});
}

På PHP-sidan kan du skriva koden nedan för att implementera denna funktionalitet:

$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);

Mer information om JSON finns här .




  1. Får duplicerat kolumnnamnsfel i Django utan uppenbar anledning

  2. Få LÄNGDEN av en LONG RAW

  3. Pymysql Insert Into fungerar inte

  4. Hur undkommer man kommatecken och dubbla citattecken samtidigt för CSV-fil?