2016-05-23 20 views
1

I Problem bin immer während Auswahlbox Optionen bevöl hängen von früherem AuswahlfeldBestücken Auswahlbox Optionen aus früherem Auswahlfeld Wert

Problem ist Jedes Mal, wenn ich den Wert aus dem ersten Auswahlfeld wählen (dh #city) es gibt mir die Ergebnis des Stadtwertes, das ist in Ordnung, aber sobald ich den zweiten Wert anwähle, gibt es mir das Ergebnis der zweiten Werte sowie der ersten Werte.

unten ist mein Code

HTML CODE

<lable>City</lable> 
<select id="city" style="width:100%;text-align:left;" onchange="getSchool()"></select> 
<span id='paymentform_city_errorloc' class='error'></span> 
<br> 
<br> 
<lable>School</lable> 
<select id="school" style="width:100%;"> 

</select> 
<span id='paymentform_school_errorloc' class='error'></span> 
<br> 
<br> 

JS CODE

var cityname, city, schoolname, schooldata, cityid, city1; 
      var cityarray = []; 
      var schoolarray = []; 

      function getCity() { 
       jQuery.ajax({ 
        url: baseurl + "getcity.php", 

        async: true 
        , success: function (data) { 
         data = $.trim(data); 
         if (data == "false") { 
          console.log(data); 

         } else { 

          var myArray = jQuery.parseJSON(data); 

          jQuery(myArray).each(function (index, element) { 
           cityname = element.cityname; 
           cityid = element.city_id; 
           cityarray.push([cityname, cityid]) 
          }); 
          for (var i = 0; i < cityarray.length; i++) { 
           city1 += '<option value="' + cityarray[i][1] + '">' + cityarray[i][0] + '</option>'; 

          } 

          $('#city').html("<option disabled selected></option>" + city1); 
         } 
        } 

       }); 
      } 

    function getSchool() { 
      var city_id = $('#city').val(); 
      jQuery.ajax({ 
       url: baseurl + "getschool.php" 
       , data: 'cityid=' + city_id 
       , type: "POST" 
       , success: function (response) { 
        response = $.trim(response); 
        if (response == "false") { 

           $('#school').prop('disabled', 'disabled'); 

        } else { 
         $('#school').prop('disabled', false); 
         console.log(response); 
         $('#school').append(response); 


        } 

       } 
       , error: function() {} 
      }); 
     } 
+1

Sie müssen Ihre div leeren, bevor Sie etwas in die Datei einfügen ..add '$ ('# school'). Leer();' just bore '$ ('# school'). Append (response);' –

Antwort

1
function getSchool() { 
      var city_id = $('#city').val(); 
      schoolarray = []; //Add this code. 

die obige Änderung. Und Ihr Schul-Array wird jedes Mal zurückgesetzt, wenn eine neue Stadt ausgewählt wird.