通过ajax请求提交jQuery.each结果

时间:2012-10-02 20:44:18

标签: javascript jquery ajax

$(".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请求与其他输入一起提交。我怎样才能做到这一点?查看代码注释以获取详细信息。

谢谢!

3 个答案:

答案 0 :(得分: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');
  }
});

答案 1 :(得分:1)

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

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

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

答案 2 :(得分: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');
  }
});