我正在尝试构建一个非常简单的管理区域,管理员可以在该区域中批准或拒绝图片/链接广告,然后再显示在网站上。他们将使用包含"接受"的单选按钮。或"拒绝" ID,该值是广告的唯一ID号。
我想我会尝试将非常方便的.each()
函数放入他们自己的数组中,然后让PHP处理每个数组。
但是,在提交表单时,我从FireBug控制台收到Callback is undefined
错误。
示例HTML(由PHP输出):
<li><input type="radio" name="' . $a['adID'] . '" id="accept" value="' . $a['adID'] . '" /> Approve</li>
<li><input type="radio" name="' . $a['adID'] . '" id="reject" value="' . $a['adID'] . '" /> Reject</li>
...这是jQuery代码:
$(document).ready(function() {
$("#save").click(function() {
var arrayOfAccepted = new Array();
var arrayOfRejected = new Array();
$.each("input:radio[id='accept']:checked"), function() {
arrayOfAccepted.push($(this).val());
}
$.each("input:radio[id='reject']:checked"), function() {
arrayOfRejected.push($(this).val());
}
$.ajax({
type: 'POST',
url: 'exe/fn.moderateAds.php',
data: {acceptedAds : arrayOfAccepted, rejectedAds : arrayOfRejected},
success: function() {
alert("Changes saved successfully.");
}
});
});
});
数据参数中的 acceptedAds
/ rejectedAds
将是我希望PHP在查找数组时识别数组的变量。
语法错误,或者我是如何通过AJAX函数传递数据的?
答案 0 :(得分:3)
您的右括号位于错误的位置并且您没有选择元素,而是迭代字符串。此外,您的选择器有点过于具体。
$.each("input:radio[id='accept']:checked"), function() {
arrayOfAccepted.push($(this).val());
}
应该是:
$("input:radio[id='accept']:checked").each(function() {
arrayOfAccepted.push($(this).val());
});
另一个也一样。现在,它被视为一个逗号运算符,左侧操作数为$.each("input:radio[id='accept']:checked")
(因此您看到的错误)和一个从未使用过的匿名函数的右侧操作数。
代码提示:使用[]
代替new Array()
。