我正在附加多个输入框并成功将一个输入数组发布到mysql,就像这样。
$('<p><input type="text" class="name" name="task" ></p>').appendTo($('#add_here'));
function addmem(id, text, number) {
$('input.name').each(function() {
// var te=$('input.task').val();
$.post(
'sendchat2.php',
{ option: 'add_mem', id: id , text: $(this).val() },
function(data) {
alert(data);
});
});
}
但现在我需要同时发布两个输入数组。一个输入是客户名称,另一个是他的手机号码。我尝试了以下,但它无法正常工作。请帮助或建议任何替代方法。
$('<p><input type="text" class="name" ><input type="text" class="number" name="task" ></p>').appendTo($('#add_here'));
function addmem(id, text, number) {
$('input.name').each(function() {
$('input.number').each(function() {
$.post(
'sendchat2.php',
{ option: 'add_mem', id: id, text: $(this).val(), number: $(this).val()},
function(data) {
alert(data);
}
);
});
});
}
答案 0 :(得分:2)
您应该使用$ .ajax {})函数而不是$ .post。
$.ajax({
type: 'POST',
data: array1.serialize() + array2.serialize(), //(if this info is coming from a form, just do $(form identifier).serialize(); and it will send all form elements).
url: <destination url>
success: function (data){
<what you want to do when the request is successful here>
}
})
这样做,你只需要对所有数据进行1次ajax调用,而不是通过循环进行每次迭代的ajax调用。它应该更有效率。
我认为这个函数也可以更容易地与多个数据源一起使用,但我相信你也许可以用$ .post来实现这个目的(也许是序列化两个数组,或者将两个数组合成一个在传递给服务器之前。如果你能告诉我你的表格是什么样的,我会更具体。
答案 1 :(得分:1)
如果标记始终符合方案<name><number>
function addmem(id, text, number) {
$('input.name').each(function() {
var input = $(this),
name = input.val(),
number = input.next().val();
$.post(
"sendchat2.php",
{ "option": "add_mem", "id": id, "text": name, "number": number },
function(data) {
alert(data);
}
);
});
}
答案 2 :(得分:0)
突出的是这个循环
$('input.name').each(function(){
$('input.number').each(function(){
$.post('sendchat2.php', {option:'add_mem', id:id , text:$(this).val(),number:$(this).val()}, function(data) {
alert(data);
});
});
});
看起来您要为text
和number
帖子变量分配相同的值,因为this
关键字将始终引用内部的input.number
元素each
循环。试试这个:
$('input.name').each(function(){
var nameval = $(this).val();
$('input.number').each(function(){
var numval = $(this).val();
$.post('sendchat2.php', {option:'add_mem', id:id , text:nameval, number:numval}, function(data) {
alert(data);
});
});
});