如何构建/控制表单提交的数据?

时间:2014-09-09 12:17:10

标签: javascript php html html5

我们假设我有一个这样的表格:

<form>
    <table>
        <thead>
        <th>
            Submit?
        </th>
        <th>
            Data
        </th>
        </thead>
        <tbody>
            <tr>
                <td>
                    <input type="checkbox" name="c1">
                </td>
                <td>
                    <input name="t1">
                </td>
            </tr>
            <tr>
                <td>
                    <input type="checkbox" name="c2">
                </td>
                <td>
                    <input name="t2">
                </td>
            </tr>
        </tbody>
    </table>
</form>

如果我提交该表格。将提交一个包含复选框(如果已选中)和常规输入的数组。

现在我想要它:

  • 将每一行提交为数组
  • 中的一行
  • 如果选中该复选框,则仅提交该行的内容。

有没有办法实现这个目标?

修改

现在我正在提交数据:

$.post(url, { attributes: $(form).serializeArray() })

如果可能的话,我喜欢用HTML-Markup来做。因为在我看来这是正确的方式。

我实际上并不想做一些JS / PHP阵列杂耍。除非有一个很好的方法来做到这一点。现在我只能想到一些非常丑陋的foreach堆叠。

1 个答案:

答案 0 :(得分:0)

好的就是我如何解决它:

保持表格原样。

做一些JS Magic。而是提交表格我执行以下操作:

var submitData = {};

$("input:checked.attributCheckbox").each(function() {
    var id = $(this).attr('name');
    // This is how I get the input for the checkbox.
    var val = $("input[type=number][name="+ id +"]").val();

    submitData[id] = val;
});

$.post(url, {attributes : submitData});

嗯,这不是我希望的完美解决方案。但它的效果非常好。也许有人可以想出一个更好的方法来解决它?