Jquery序列化表单数据

时间:2016-08-22 11:27:30

标签: jquery serialization

我知道有很多关于这方面的问题,并且我已经开始工作了......

我的表单设计为:

    <tr data-id='123456789'>
        <td><input name="Site" type="text" id="Site" value='123'/></td>
        <td><input name="Location" type="text" id="Location" value='NW'/></td>
    </tr>

    <tr data-id='987654321'>
        <td><input name="Site" type="text" id="Site" value='444'/></td>
        <td><input name="Location" type="text" id="Location" value='NE'/></td>
    </tr>

然后我正在使用:

进行序列化
var datastring = $("#form2").serialize();

这有效,但不包括data-id中的TR 无论如何我可以包括那个?

我想发送到我的php页面是:

123456789:123:NW
987654321:444:NE

我很高兴能够以更好的方式做到这一点! 感谢

3 个答案:

答案 0 :(得分:2)

在这里,我写了一些代码,这将对您有所帮助。你可以做而不是序列化表格。

&#13;
&#13;
var post_data={data:[]};
$('tr[data-id]').each(function(){
    var tmp=[];
    tmp.push($(this).data('id'));
    $(this).find('input').each(function(){
      tmp.push($(this).val());
    });
    post_data.data.push(tmp.join(":"));
});
alert(JSON.stringify(post_data));
// now you can post data as a form using ajax.
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr data-id='123456789'>
        <td><input name="Site" type="text" id="Site" value='123'/></td>
        <td><input name="Location" type="text" id="Location" value='NW'/></td>
    </tr>

    <tr data-id='987654321'>
        <td><input name="Site" type="text" id="Site" value='444'/></td>
        <td><input name="Location" type="text" id="Location" value='NE'/></td>
    </tr>
  </table>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

使用隐藏输入并设置数组中的所有值。不要多次使用ID或名称。

<tr data-id='123456789'>
    <td>
        <input name="id[]" type="hidden" value='123456789'/>
        <input name="Site[]" type="text" value='123'/>
    </td>
    <td>
        <input name="Location[]" type="text" value='NW'/>
    </td>
</tr>

<tr data-id='987654321'>
    <td>
        <input name="id[]" type="hidden" value='987654321'/>
        <input name="Site[]" type="text" value='444'/>
    </td>
    <td>
        <input name="Location[]" type="text"value='NE'/>
    </td>
</tr>

答案 2 :(得分:0)

<tr>
    <td><input name="data_id[]" type="text" id="data_id" value='123456789'/></td>
    <td><input name="Site[]" type="text" id="Site" value='123'/></td>
    <td><input name="Location[]" type="text" id="Location" value='NW'/></td>
</tr>
<tr>
    <td><input name="data_id[]" type="text" id="data_id" value='987654321'/></td>
    <td><input name="Site[]" type="text" id="Site" value='444'/></td>
    <td><input name="Location[]" type="text" id="Location" value='NE'/></td>
</tr>

获取php页面中的所有三个数组并在循环中处理它们, 您可以根据data_id

处理站点和位置