我有这段代码来更新用户数据,但我不能在jquery数据中编写for循环!!
有没有办法修改后面错误的代码才能正确
function DisactiveUser()
{
var num_checkboxes = document.forms[0].elements.length-1;
$.ajax({
type: "POST",
url: "submit/php/users.php?do=disactive",
data: for(i = 1; i <= num_checkboxes; i++)
{
"&chk" + i + "=" + document.getElementById("check" + i).value +
"&chkc" + i + "=" + document.getElementById("check" + i).checked +
}
success: function(html){
$("#loading").html(html);
}
});
}
答案 0 :(得分:2)
您可以在$.ajax
调用之前构建数据字符串,然后提供:
function DisactiveUser()
{
var num_checkboxes = document.forms[0].elements.length-1;
var mydata;
mydata = "";
for (var i = 1; i <= num_checkboxes; i++)
{
mydata +=
"&chk" + i + "=" + document.getElementById("check" + i).value +
"&chkc" + i + "=" + document.getElementById("check" + i).checked;
}
mydata = mydata.substring(1); // Ditch the leading &
$.ajax({
type: "POST",
url: "submit/php/users.php?do=disactive",
data: mydata
success: function(html){
$("#loading").html(html);
}
});
}
答案 1 :(得分:1)
您可以使用jQuery $.map
函数
data: $.map($('input:checkbox').filter(function() { return /^check\d+/.test(this.id); }), function() {
var id = this.id.replace(/^[^\d]*(\d+)/, "$1");
return "chk" + id + "=" + this.value + "&chkc" + id + "=" + this.checked;
}).get().join('&')
或类似的东西。
答案 2 :(得分:0)
您可以将它存储在变量中,如下所示:
function DisactiveUser()
{
var myData = "";
$(":checkbox").each(function(i) {
myData += "&chk" + i + "=" + $(this).val() +
"&chkc" + i + "=" + $(this).is(":checked");
});
$.ajax({
type: "POST",
url: "submit/php/users.php?do=disactive",
data: myData,
success: function(html){
$("#loading").html(html);
}
});
}
但是,除非您需要服务器端的这种特定格式,否则您可能需要查看.serialize()
to handle this。
在这里,为了让Pointy高兴,这里也是一个阵列路线,这对于大量的复选框来说效果会更好:
var myData = $(':checkbox').map(function() {
return "chk" + i + "=" + $(this).val() +
"&chkc" + i + "=" + $(this).is(":checked");
}).get().join('&');
答案 3 :(得分:0)
function DisactiveUser()
{
var num_checkboxes = document.forms[0].elements.length-1;
var data = '';
for(i = 1; i <= num_checkboxes; i++)
{
data += "&chk" + i + "=" + $("check" + i).val() +
"&chkc" + i + "=" + $("check" + i)[0].checked;
}
$.ajax({
type: "POST",
url: "submit/php/users.php?do=disactive",
data: data,
success: function(html){
$("#loading").html(html);
}
});
}
答案 4 :(得分:0)
我经常运行我的jQuery调用:
的jQuery( '#时间')。变化(函数(){ jQuery.post('tasks.php?mode = mycompleted', {time:jQuery('#time option:selected')。attr('id')}, function(xml){showTasks(xml); } ); });
这只是我使用jQuery对PHP脚本进行“Ajax”调用的一个例子。只要#time
被更改,它就会将数据发布到tasks.php。函数(xml)段将回调一个javascript函数来处理从脚本中检索到的XML响应。
希望有所帮助。