$.ajax({
type: 'GET',
url: "/biboundsoptimization",
data: {
objects: '2',
},
success: function (data) {
console.log(data);
alert(data);
},
error: function (data, status, er) {
alert("error: " + data + " status: " + status + " er:" + er);
}
});
但现在我无法知道数据字段中的变量数量。例如,当客户端输入2时,数据字段应为:
data: {
objects1: value of objects1,
objects2: value of objects2,
},
如果客户输入3,则数据字段应为:
data: {
objects1: value of objects1,
objects2: value of objects2,
objects3: value of objects3,
},
在ajax请求之前,客户端已经将每个对象的值输入到不同的输入字段中。但是在他进入之前我不知道这个号码。所以我不能像上面那样写。很明显,需要一个循环来循环遍历客户端提供的循环次数来获取所有对象。我尝试过类似的东西:
for (int i = 1; i < clientValue; i++) {
'objects' + i: $('#objects' + i).val(),
}
但它不起作用。在语法上它是错误的。任何人都可以帮助我吗?谢谢!
答案 0 :(得分:3)
尝试使用$ .each jquery函数
var data = {};
$('#objects input').each(function(){
data.push(this.value);
});
答案 1 :(得分:2)
如果您的数据来自FORM ..您可以使用jquery序列化功能自动将它们全部包装在一起。
var formData = $('#yourform').serialize();
然后你可以在你的ajax请求中做一些这样的事情
var request = $.ajax({
type: 'POST',
url: 'ajaxHandler.php',
cache: false,
data: formData, //all the data is automatically ready for you now
dataType: 'json'
});
答案 2 :(得分:1)
您可以动态创建包含所有对象的对象:
var dataToPost = {};
for(int i = 1; i < clientValue; i++){
dataToPost['objects' + i] = $('#objects' + i).val();
}
然后像这样传递ajax调用
data: dataToPost,
答案 3 :(得分:0)
var objects = [];
for(int i = 1; i < clientValue; i++){
objects[i]: $('#objects' + i).val(),
}
答案 4 :(得分:0)
将所有输入添加到类中并使用$ .each函数
<input id="object1" class="object" />
<input id="object2" class="object" />
var data = {};
var id;
$('.object').each(function(){
id = $(this).attr('id');
data[id] = $(this).val();
});