2015-09-14 7 views
0

У меня есть три выбора, которые динамически заполняются после выбора опции из меню выбора над ней. Если я выбираю параметр из первого выбора, второй заполняется так, как предполагалось, но если я изменил параметр в первом, параметры будут добавлены к существующим параметрам, а не к выбору, который будет сброшен, а затем занесен новыми данными. Я уверен, что есть какой-то метод перезагрузки или сброса, который я могу вызвать, когда я хочу сбросить старые данные из перед заполнением новыми данными, я просто не могу его найти.Сброс выпадающего списка При выборе вариантов найма

Javascript

<script> 
    $(function() { 
    $("#service").change(function() { 
     var service = $(this).val(); 
     $.ajax({ 
      type: "GET", 
      url: "<?=Config::get('baseURL');?>getdata.php", 
      data: { service: service }, 
      dataType: "json" 
     }).done(function(reply) { 
      console.log(reply); 
      $.each(reply, function(key, value) { 
       $('#category').append($('<option>', { value: value.value }).text(value.text)); 
      }); 
     }); 

    }); 
    }); 
    $(function() { 
    $("#category").change(function() { 
     var service = $("#service").val(); 
     var category = $(this).val(); 
     $.ajax({ 
      type: "GET", 
      url: "<?=Config::get('baseURL');?>getdata.php", 
      data: { 
       service: service, 
       category: category 
      }, 
      dataType: "json" 
     }).done(function (reply) { 
      $.each(reply, function (key, value) { 
       $("#subCategory").append($('<option>', { 
        value: value.value 
       }).text(value.text)); 
      }); 
     }); 
    }); 
    }) 
</script> 

Этот код работает отлично, но я, как я могу настроить его, чтобы очистить старые данные из там, если я изменить параметр в раскрывающемся списке предшествующая?

+0

Если содержание '# subCategory' полностью генерируется вашим кодом, первое, что вам нужно сделать, это' .empty() 'все, что в нем. В противном случае вы просто сохраните '.append()' -из большего количества данных. https://api.jquery.com/empty/ (Это явно не сработает, если какая-то из # подкатегории статична, но это должно заставить вас начать.) – lostphilosopher

ответ

0

Не стоит публиковать сообщения ранее. Построил его вскоре после этого. Это сделало для меня работу. Это, вероятно, совсем не совсем.

$(function() { 
    $("#service").change(function() { 
     var service = $(this).val(); 
     $.ajax({ 
      type: "GET", 
      url: "<?=Config::get('baseURL');?>getdata.php", 
      data: { service: service }, 
      dataType: "json" 
     }).done(function(reply) { 
      $("#category").find('option').remove(); 
      $('#category').append($('<option>').text("--Please Select a Category--")); 


      $.each(reply, function(key, value) { 
       $('#category').append($('<option>', { value: value.value }).text(value.text)); 
      }); 
     }); 

    }); 

    $("#category").change(function() { 
     var service = $("#service").val(); 
     var category = $(this).val(); 
     $.ajax({ 
      type: "GET", 
      url: "<?=Config::get('baseURL');?>getdata.php", 
      data: { 
       service: service, 
       category: category 
      }, 
      dataType: "json" 
     }).done(function (reply) { 
     $("#subCategory").find('option').remove(); 

     if (reply.length > 1) { 
      $('#subCategory').append($('<option>').text("--Please Select a Sub-Category --")); 
      $.each(reply, function (key, value) { 
      $("#subCategory").append($('<option>', { 
       value: value.value 
      }).text(value.text)); 
      }); 
     } else { 
      var value = reply[0]; 
      $("#subCategory").append($('<option>', { value: value.value }).text(value.text)); 

     } 
     }); 
    }); 
    }); 
Смежные вопросы