sql >> Database teknologi >  >> RDS >> Mysql

jquery for at udfylde flere rullemenuer fra databasen

Din måde er fin - men det vil have brug for mange ajax-opkald for at bringe indstillingsværdier for alle udvalgte felter. Du kan opnå dette i et enkelt ajax-opkald ved hjælp af JSON. På PHP-siden kan du oprette et array, som vil indeholde HTML-strengene, der repræsenterer mulighederne for de fire udvalgte felter. Derefter kan du konvertere dette array til en JSON-streng ved hjælp af 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);

Så på websiden, til den første dropdown, kan du skrive en jQuery-funktion som denne:

 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å denne måde kan du indlæse mulighederne for alle andre dropdowns i ét ajax-opkald. Jeg forstår, at du også har brug for en lignende funktionalitet til andre rullemenuer. Du kan også skrive lignende funktion til andre rullemenuer. Her er en generaliseret funktion, hvor du videregiver dropdown-nummeret, og funktionen vil returnere mulighederne for målrettede dropdowns. For eksempel, hvis du passerer dropdown nummer 2, vil funktionen returnere muligheder for dropdowns 3, 4 og 5. Hvis du passerer 3, vil den returnere muligheder for dropdowns 4 og 5, og så videre.

 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-siden kan du skrive koden nedenfor for at implementere denne 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);

Mere information om JSON kan findes her .




  1. Operatøren findes ikke:json =json

  2. Opret en skalær brugerdefineret funktion i SQL Server

  3. MYSQL - Hvordan forbinder man to forespørgsler for at udelade elementer fundet i den anden forespørgsel (eller måske en bedre løsning?)

  4. Vælg særskilt kolonne sammen med nogle andre kolonner i MySQL