2017-09-24 15 views
1

我有多个下拉框,这是一个循环的结果。如何获得选择选择是点击

foreach($Transs as $Trans){ 
<select data-id="'.$Trans->coursetitle.'" name = "Schedule" id = "Schedule" class = "form-control" '.$disabled.'> 
<option></option> 
</select> 
} 

每次我想单击一个选择框,它将填充一个数据从PHP并显示为选项在单击框中​​。

这里我AJAX

<script> 

$(document).on("click", "#Schedule", function() { 
    var subid = $(this).data('id'); 
    var dataString = 'id=' + subid; 
    $.ajax({ 
     type: "POST", 
     url: "../class/formschedule.class.php", 
     data: dataString, 
     cache: false, 
     dataType: 'json', 
     success: function (data) { 
      var len = data.length; 
      $("#Schedule").empty(); 
      for(var i = 0; i<len; i++){ 
       var id = data[i]['id']; 
       var name = data[i]['name']; 

       $("#Schedule").append("<option value='"+id+"'>"+name+"</option>"); 

      } 
     } 
    }); 
}); 
</script> 

但什么情况是,只有第一个下拉框中,填入不是我点击。

回答

0

HTML页面必须包含唯一的ID。你给同一个id多选择,这就是为什么只有第一个id事件完成。你的ID更改为类,然后执行操作

foreach($Transs as $Trans){ 
echo '<select data-id="'.$Trans->coursetitle.'" name = "Schedule" class = "form-control Schedule" '.$disabled.'> 
<option></option> 
</select>'; 
} 

阿贾克斯:

<script> 

$(document).on("click", ".Schedule", function() { 
    var subid = $(this).data('id'); 
    var dataString = 'id=' + subid; 
    var attr = $(this); 
    $.ajax({ 
     type: "POST", 
     url: "../class/formschedule.class.php", 
     data: dataString, 
     cache: false, 
     dataType: 'json', 
     success: function (data) { 
      var len = data.length; 
      $(attr).empty(); 
      for(var i = 0; i<len; i++){ 
       var id = data[i]['id']; 
       var name = data[i]['name']; 

       $(attr).append("<option value='"+id+"'>"+name+"</option>"); 

      } 
     } 
    }); 
}); 
</script> 
+0

我想你的建议,先生,但它不工作:) – funfunky31

+0

你得到了什么问题? –

+0

它不会填充下拉框 – funfunky31