2015-04-17 1 views
0

Привет, У меня есть проблема фильтрации второй выпадающей страницы, которая зависит от первой выпадения, Это похоже на второй вариант сбрасывания, который они статичны, они не делают изменение, основанное на том, что я выбрал здесь, - это мой код, чтобы вывести данные secon.JQuery второй снижается в зависимости от первого падения вниз не изменяется

$.ajax({ 
     dataType: "json", 
     url: "{{action('[email protected]')}}/"+$("#advertiserId").val() 

    }).done(function(results){ 
     $("#brandId").empty(); 
     $(results).each(function(index,value){       

      newOption = $("<option value=\""+value.id+"\">"+value.brandName+"</option>"); 
      $("#brandId").append(newOption); 



     }); 

пожалуйста, проверьте весь мой сценарий может быть, где-то освежающее, что падение вниз

$(document).ready(function() { 
     $(function() { 
      $("#multiselect").multiselect({ 
       includeSelectAllOption: true 
      }); 
      $('#btnSelected').click(function() { 
       var selected = $("#multiselect option:selected"); 
       var message = ""; 
       selected.each(function() { 
        message += $(this).text() + " " + "\n"; 
       }); 
       alert(message); 
      }); 
     }); 

     function loadBrands() { 

      $.ajax({ 
       dataType: "json", 
       url: "{{action('[email protected]')}}/" + $("#advertiserId").val() 
      }).done(function (results) { 
       $("#brandId").empty(); 

       $.each(results, function (index, value) { 

        var newOption = $("<option value=\"" + value.id + "\">" + value.brandName + "</option>"); 
        $("#brandId").append(newOption); 
        // $("#brandId").trigger("chosen:updated"); 
       }); 
       //$("#brandId").empty(); 
       // hardcode 1 it must be remove asap 
       $.ajax({ 
        dataType: "json", 
        url: "{{action('[email protected]')}}/" + 1 
       }).done(function (results) { 
        $("#campaignId").empty(); 
        console.debug(get); 
        $(results).each(function (index, value) { 

         $("#campaignId").append("<option value=\"" + value.campaignId + "\">" + value.campaignName + "</option>"); 
         $('#campaignId').trigger('change'); 
        }); 
       }); 
       //loading city 
       $.ajax({ 
        dataType: "json", 
        url: "{{action('[email protected]')}}/" + 1 
       }).done(function (results) { 
        $("#city").empty(); 

        $(results).each(function (index, value) { 
         getCityDetails = value.data[0]; 

         $("#city").append("<option value=\"" + getCityDetails.brandId + "\">" + getCityDetails.city + "</option>"); 
         $('#city').trigger('change'); 
        }); 
       }); 

      }).fail(function (results) { 
       alert("Failed to load brands."); 
      }); 
     } 
     loadBrands(); 
     $("#advertiserId").change(loadBrands); 
     $("#brandId").change(loadBrands); 


    }); 
+1

'$ (результаты) .each (' для DOM, вы должны использовать '$ .each (результаты) 'вместо – mohamedrias

ответ

0
$(results).each(

Используется для перебора Нодлист в JQuery.

Для обработки данных вы должны использовать вместо этого $.each(results).

$.each(results, function(index,value){       

      var newOption = $("<option value=\""+value.id+"\">"+value.brandName+"</option>"); 
      $("#brandId").append(newOption); 
      // $("#brandId").trigger("chosen:updated"); 


     }); 

Вместо добавления на каждой итерации вы можете нажать массив и затем добавить его наконец.

var options = []; 
$.each(results, function(index,value){       
    options.push('<option value="'+value.id+'">'+value.brandName+'</option>'); 
}); 
$("#brandId").html(options.join()); 

Также Вы пропустили var ключевое слово при определении newOption так будет глобальным

+0

Он по-прежнему делает то же самое, я могу получить свои варианты, но все же даю ту же проблему, например, мои варианты (красный, зеленый, оранжевый, желтый, черный, коричневый), когда я выбираю желтый цвет, он будет выбирать его для может быть, секунда, но после этого он возвращается к красному, как если бы он по умолчанию был –

+0

, не могли бы вы настроить jsfiddle, чтобы посмотреть на него? Потому что выглядит как что-то другое, меняется выпадающее меню – mohamedrias

+0

my jsfiddle работает нормально, но я не знаю, почему на моем коде не работает, дайте мне поместить весь код. Это нормально? –

0
$(document).ready(function() { 
$(function() { 
$("#multiselect").multiselect({ 
    includeSelectAllOption: true 
}); 
$('#btnSelected').click(function() { 
    var selected = $("#multiselect option:selected"); 
    var message = ""; 
    selected.each(function() { 
     message += $(this).text() + " " + "\n"; 
    }); 
    alert(message); 
}); 
}); 

    function loadBrands(){ 

$.ajax({ 
    dataType: "json", 
    url: "{{action('[email protected]')}}/"+$("#advertiserId").val() 
}).done(function(results){ 
    $("#brandId").empty(); 

    $.each(results, function(index,value){       

     var newOption = $("<option value=\""+value.id+"\">"+value.brandName+"</option>"); 
     $("#brandId").append(newOption); 
     // $("#brandId").trigger("chosen:updated"); 
    }); 
    //$("#brandId").empty(); 
    // hardcode 1 it must be remove asap 
    $.ajax({ 
     dataType: "json", 
     url: "{{action('[email protected]')}}/"+1 
    }).done(function(results){ 
     $("#campaignId").empty(); 
     console.debug(get); 
     $(results).each(function(index,value){ 

      $("#campaignId").append("<option value=\""+value.campaignId+"\">"+value.campaignName+"</option>"); 
      $('#campaignId').trigger('change'); 
      }); 
    }); 
    //loading city 
    $.ajax({ 
     dataType: "json", 
     url: "{{action('[email protected]')}}/"+1 
    }).done(function(results){ 
     $("#city").empty(); 

     $(results).each(function(index,value){ 
      getCityDetails = value.data[0]; 

      $("#city").append("<option value=\""+getCityDetails.brandId+"\">"+getCityDetails.city+"</option>"); 
      $('#city').trigger('change'); 
      }); 
    }); 

}).fail(function(results){ 
    alert("Failed to load brands."); 
}); 
} 
loadBrands(); 
$("#advertiserId").change(loadBrands); 
$("#brandId").change(loadBrands); removed this line now it is working 
Смежные вопросы