2016-04-08 9 views
0

Ich erstelle zwei Dropdown-Felder von 2 zwei Tabellen in meiner Datenbank (Staaten und Städte). Die Cities-Tabellen sind mit jedem Bundesland verknüpft. Ich konvertierte die Daten von beiden Tabellen zu Json mit PHP. Ich benutze Ajax, um beide Dropdown-Optionen zu füllen. Jetzt möchte ich das Dropdown-Menü "Städte" filtern, wenn ein Benutzer einen Status aus dem Dropdown-Menü "Status" auswählt. Ich benutze den Code unten und es funktioniert gut, außer, es fügt ein leeres Optionsfeld nach jedem ausgefüllten Optionsfeld hinzu. Irgendeine Hilfe?Wie man zwei Dropdowns auf einmal mit Ajax bevölkern

function State() { 
    $('#statedd1').empty(); 
    $('#statedd1').append("<option value='0'>- Select State -</option>"); 
    $('#citydd1').append("<option value='0'>- Select City -</option>"); 
    $.ajax({ 
     type:"GET", 
     url:"states.php", 
     contentType:"application/json; charset=utf-8", 
     dataType:"json", 
     success: function(data) { 
      $('#statedd1').empty(); 
      $('#statedd1').append("<option value='0'>- Select State -</option>"); 
      $.each(data,function (index, item) { 
       $('#statedd1').append('<option value="'+ item.State_ID +'">'+ item.State_Name +'<option>'); 
      }); 
     },complete: function() {} 
    }); 
} 

function City(State_ID) { 
    $('#citydd1').empty(); 
    $('#citydd1').append("<option>Loading...</option>"); 
    $.ajax({ 
     type:"GET", 
     url:"cities.php?Id="+State_ID, 
     contentType:"application/json; charset=utf-8", 
     dataType:"json", 
     success: function(data) { 
      $('#storedd1').empty(); 
      $('#storedd1').append("<option value='0'>- Select City -</option>"); 
      $.each(data,function (index, item) { 
       $('#citydd1').append('<option value="'+ item.CityID +'">'+ item.CityName +'<option>'); 
      }); 
     },complete: function() {} 
    }); 
} 

$(document).ready(function() { 
     State(); 
     $("#statedd1").change(function() { 
      var State_ID = $("#statedd1").val(); 
      City(State_ID); 
     }); 
    }); 

<p><select id="statedd1"></select></p> 
<br><br> 
<p><select id="citydd1" multiple></select></p> 

Antwort

0

Ich glaube, Sie </Option a/in dem zweiten Option-Tag fehlen> in Ihrer append Zeile

+0

Oh wow! Das war es @ Martin Julian. Ich danke dir sehr. Nur die kleine Sache und ich habe die ganze Woche gekämpft, um herauszufinden, was mit meinem Code nicht stimmt. hahaha –