只需将表单的值发布到php即可

时间:2014-06-16 09:18:35

标签: jquery ajax post

我的表格看起来像这样:

<tr>
  <td><input type="text" name="name[1]"></td>
  <td><input type="text" name="gender[1]"></td>
</tr>
<tr>
  <td><input type="text" name="name[2]"></td>
  <td><input type="text" name="gender[2]"></td>
</tr>
<tr>
  <td><input type="text" name="name[3]"></td>
  <td><input type="text" name="gender[3]"></td>
</tr>

我只是想用ajax发布它的值来在php中得到这样的东西:

var_dump($name)

array (size=3)
  1 => string 'Brunhilde' (length=9)
  2 => string 'Kevin' (length=5)
  3 => string 'Han Solo' (length=8)

var_dump($gender)

array (size=3)
  1 => string 'female' (length=6)
  2 => string 'male' (length=4)
  3 => string 'male' (length=4)

serialize()serializeArray()不是我想要的。例如serializeArray()

array (size=6)
  0 => array (size=2)
    'name' => string 'name[1]' (length=7)
    'value' => string 'Brunhilde' (length=9)
  1 => array (size=2)
    'name' => string 'gender[1]' (length=9)
    'value' => string 'female' (length=6)
  ...

我曾经使用xajax,其中单个函数xajax.getFormValues()完美地解决了这个问题。 我如何用ajax实现这个目标?

更新:代码:

$.ajax({
    dataType: "text",
    url: myUrl,
    type: "POST",
    data: {
        myVar1: $("#myVar1").val(),
        myVar2: $("#myVar2").val(),
        myForm: $("#myForm").serializeArray()
    },
    success: function(data) {
        alert(data);
    }
});

1 个答案:

答案 0 :(得分:1)

为所有常见类型数据添加一个类/数据标识符。示例我已将名称 - 文本类添加到所有输入以捕获名称

    <tr>
      <td><input type="text" class="name-text" name="name[1]"></td>
      <td><input type="text" class="gender-text" name="gender[1]"></td>
    </tr>
    <tr>
      <td><input type="text" class="name-text" name="name[2]"></td>
      <td><input type="text" class="gender-text" name="gender[2]"></td>
    </tr>
    <tr>
      <td><input type="text" class="name-text" name="name[3]"></td>
      <td><input type="text" class="gender-text" name="gender[3]"></td>
    </tr>

    var nameValues = Array();
    $('.name-text').each(function(){
    nameValues.push(this.val());
    });

var genderValues = Array();
    $('.gender-text').each(function(){
    genderValues.push(this.val());
    });

    $.post(url,{'name':nameValues,'gender':genderValues},function(){

    });

这会将单个变量'name'下的所有名称发送到php