我有多个复选框输入元素。
<input type="checkbox" name="userpages[]" id="1" value="1"/>
<input type="checkbox" name="userpages[]" id="2" value="2"/>
<input type="checkbox" name="userpages[]" id="3" value="3"/>
<input type="checkbox" name="userpages[]" id="4" value="4"/>
我想通过Ajax 将checked元素的值传递给php脚本。我试过这样做 -
var pages = $('input[name="userpages[]"]:checked');
$.ajax({
type: 'POST',
url: 'post.php',
data: {pages: pages},
dataType: 'json',
success: function(data) {
if(data.status == 1) {
alert('Successfully posted on your Facebook pages !');
} else if(data.status == 0) {
alert('Error !! Please try again.');
} else {
alert('Unknown Error. Reloading this page now...');
location.reload();
}
}
});
并在php脚本中检索值 -
foreach($_POST['pages'] as $page_id) {
echo $page_id;
}
但这对我没有用。我也试过获取变量pages
的值,当它被警告时会弹出'object Object'。任何帮助都会很明显。 :)
答案 0 :(得分:5)
var checked = []
$("input[name='userpages[]']:checked").each(function ()
{
checked.push(parseInt($(this).val()));
});
答案 1 :(得分:0)
阵列是正确的。但是,它是一个由jQuery DOM元素组成的数组,而不是输入值。
要在数组中以index => value
对的形式获取数据,要通过AJAX发送,请使用以下内容:
var data = []
$('input[name="userpages[]"').each (function (index, element) {
data[$(element).attr('id')] = $(element).val();
});
console.log(data);
使用jQUery AJAX函数发送收集的数据。
JSFiddle:http://jsfiddle.net/LMbxC/1/