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 请求与其他输入一起提交。我怎样才能做到这一点?详情请查看代码注释。

谢谢!

4

3 回答 3

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');
  }
});
于 2012-10-02T20:47:10.260 回答
1

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

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

$.post(url, $('form').serialize(), function(data) {
    alert("Success");
});
于 2012-10-02T21:02:11.127 回答
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');
  }
});
于 2012-10-02T20:51:01.987 回答