有没有办法循环遍历元素并传递$ .ajax()的数据:{}选项中的元素值?
例如
$res = pg_query($con, "select * from tbl_salary_deductions");
while($row = pg_fetch_assoc($res)) {
echo "<input type=checkbox class='dlccat' id='" . $row['dlcid']. "'> Category " . $row['dlccategory'] . "<br>";
}
创建复选框。然后在调用中只传递已检查的那些,所以我可以处理它们服务器端:
$.ajax({
url: 'ajax/register_driver.php',
data: {
//dlccat
$.each($(".dlccat:checked"), function() {
dlcat + $(this).id: true,
});
},
success: function () {
},
error: function () {
alert('DATA UPDATE FAILED. PLEASE TRY AGAIN!');
}
})
需要在db中按照图片保存已检查项目的值。
答案 0 :(得分:2)
$ .ajax()是jQuery公开的XMLHttpRequest的实现。将它视为一个函数调用,您将传递初始化参数,如url,data,dataType等。&#34; data&#34;传递给$ .ajax的选项应该是一个对象。它不会像你期望的那样被评估/运行。
上面的代码会出现语法错误,因为您正在尝试评估对象内的循环(每个语句)。
正确的方法是首先使用each语句形成一个对象,然后将该对象传递给$ .ajax方法。
会是这样的。
var obj = {};
$(".dlccat:checked").each(function() {
obj["dlcat_" + this.id] = true;
});
//to add other params, extend this object
$.extend(obj, {"otherParam" : "otherParamsValue"});
然后在$ .ajax中,将此obj变量作为数据传递。他们将作为GET参数获得
$.ajax({
url: 'ajax/register_driver.php',
data: obj,
success: function () {
},
error: function () {
alert('DATA UPDATE FAILED. PLEASE TRY AGAIN!');
}
})