在数组中使用未选中和选中的复选框

时间:2016-08-25 00:51:58

标签: javascript php jquery arrays

我有一个允许用户向其添加行的表。该表有四列。物品,数量,价格和税收。税栏是一个复选框。我正在使用隐藏的输入为未选中的框设置值。这样我就可以获取帖子数据并知道我是否应该对特定行征税。 (0值表示没有税,1值表示收费税)我遇到的问题是当在数组中放置复选框时,它总是会获取隐藏值。

表:

[0,1,0,0,0,1]

例如:我有四行。检查第一行和最后一行。数组看起来像这样[1,0,0,1]我需要数组看起来像这样$(function(){ $("#addButton").click(function(){ $(this).closest("tr").clone(true).appendTo("#myTable"); }); $("#deleteButton").click(function(){ var x = $('#myTable tr').length; if(x == 2){ } else { $(this).closest("tr").remove(); } }); }); 这是可能的还是我需要尝试一种完全不同的方法来获取未经检查和复选的框?我试图想出一个可以带走零的循环,但是我总能找到一个可以使它失败的已检查和未选中框的组合。

这是我在表格中添加行的javascript

json

1 个答案:

答案 0 :(得分:4)

未选中的复选框根本不会发送到服务器,您需要调整表单以适应这种情况。我会建议像:

<form ...>
    <input name="obj[0][name]" type="text">
    <input name="obj[0][qty]" type="text">
    <input name="obj[0][price]" type="text">
    <input name="obj[0][tax]" type="checkbox">

    <input name="obj[1][name]" type="text">
    <input name="obj[1][qty]" type="text">
    <input name="obj[1][price]" type="text">
    <input name="obj[1][tax]" type="checkbox">
    ...
</form>

然后,您可以通过检查结果数组中是否存在tax索引来可靠地测试是否检查了给定的框:

$_POST['obj'] == [
    [
        'name' => ...,
        'qty' => ...,
        'price' => ...
    ],
    [
        'name' => ...,
        'qty' => ...,
        'price' => ...,
        'tax' => ...
    ]
]