2012-10-02 181 views
0
$(".submitinfo").each(function() { 
    // Want to use ID as POST name 
    // And value as POST value 
}); 
// Submit the data 
$.ajax({ 
    url: 'submit.php', 
    traditional: true, 
    data: { 
    'submit':'true', 
    'age':$('#age').val(), 
    'loss':$('#loss').val() 
     // somehow include results here 
}, 
type: 'POST', 
async: false, 
success: function(data) { 
    alert(data); 

}, 
error: function() { 
    alert('Submit Error'); 
} 
}); 

我以前从来没有这样做过,也找不到任何地方的任何例子。我有一系列的输入和一类submitinfo,我希望能够通过ajax请求与其他输入一起提交。我怎样才能做到这一点?查看代码注释了解详细信息。通过ajax请求提交jQuery.each结果

谢谢!

+0

绝对不想使用同步Ajax请求。你应该设置'async:true'。 – Tomalak

回答

1

创建一个对象,并在each函数对象添加值,而对象传递给$.ajax数据:

var data = { 
    submit : 'true', 
    age : $('#age').val(), 
    loss : $('#loss').val() 
} 

$(".submitinfo").each(function() { 
    data[this.id]=this.value; 
}); 

$.ajax({ 
    url: 'submit.php', 
    traditional: true, 
    data: data, 
    type: 'POST', 
    async: false, 
    success: function(data) { 
    alert(data); 
    }, 
    error: function() { 
    alert('Submit Error'); 
    } 
}); 
0

这对你的作品:

var data = {}; 
$('.submitinfo').each(function() { 
    var el = $(this), 
     id = el.attr('id'), 
     val = el.val(); 

    data[id] = val; 
}); 

$.ajax({ 
    url: 'submit.php', 
    traditional: true, 
    data: data, 
    type: 'POST', 
    async: false, 
    success: function(data) { 
    alert(data); 
    }, 
    error: function() { 
    alert('Submit Error'); 
    } 
}); 
1

听起来你正尝试通过ajax提交表单。

我为此使用的javascript成语更短更简单。简而言之,你使用serialize函数序列化表单jquery对象。这使它成为一种友好的ajax格式。然后您可以直接发送到$.post。表单元素的name属性对应于服务器端的请求参数名称。

$.post(url, $('form').serialize(), function(data) { 
    alert("Success"); 
});