我有一个包含动作下拉列表的表单和一系列带有id的复选框,我想获取所有选中的复选框,并选择所选的操作并通过ajax将它们发送到另一个页面。当前的尝试是一个数组,我还能尝试什么?
<select name='action' id='action'>
<option value=''></option>
<option value='reassign'>Reassign</option>
<option value='merge'>Merge</option>
<option value='move'>Move</option>
</select>
$('select').on('change',$('#action'),function(){
data = [];
$.each($('input:checkbox'),function(e,i){
if($(this).is(':checked')){
data[e] = $(this).attr('id');
}
});
data.add = $(this).val();
$.ajax({
type:"POST",
data:{data:data},
url:"bulkChange.php",
success: function(result){
alert(result);
}
});
});
目前,我没有看到添加到阵列的操作。 bulkChange.php上的print_r($ _ POST)显示:
[data] => Array
(
[0] => c_32481
[1] => c_32477
[2] =>
[3] =>
[4] =>
[5] => c_32308
)
我想看看:
[data] => Array
(
[0] => c_32481
[1] => c_32477
[2] =>
[3] =>
[4] =>
[5] => c_32308
[6] => merge
)
答案 0 :(得分:1)
在您的代码中,而不是使用
data.add = $(this).val();
使用data.push($(this).val());
应该这样做。
答案 1 :(得分:0)
$('select').on('change',$('#action'),function(){
data = [];
$.each($(this).find('option'),function(e,i){
if($(this).is(':checked')){
data[e] = $(this).attr('value');
}
});
console.log(data);
});
这是否构建数据数组,因为你喜欢它?
答案 2 :(得分:0)
尝试此操作而不是使用
data.add = $(this).val();
$('select').on('change',$('#action'),function(){
data = [];
$.each($('input:checkbox'),function(e,i){
if($(this).is(':checked')){
data[e] = $(this).attr('id');
}
});
//array push
data.push($(this).val());
$.ajax({
type:"POST",
data:{data:data},
url:"bulkChange.php",
success: function(result){
alert(result);
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<select name='action' id='action'>
<option value=''></option>
<option value='reassign'>Reassign</option>
<option value='merge'>Merge</option>
<option value='move'>Move</option>
</select>