删除表单数组元素

时间:2015-05-04 20:37:39

标签: javascript php jquery arrays forms

我有一个具有相同产品但具有不同属性的表单。 表单看起来与此类似:

<form>
<table>
    <tr>
        <td> Line-1 </td>
        <td> <input type='text' name='ítem[1][Size]'</td>
        <td> <input type='text' name='ítem[1][Color]'</td>
        <td> <input type='text' name='ítem[1][Price]'</td>
    </tr>
    <tr>
        <td> Line-2 </td>
        <td> <input type='text' name='ítem[2][Size]'</td>
        <td> <input type='text' name='ítem[2][Color]'</td>
        <td> <input type='text' name='ítem[2][Price]'</td>
    </tr>
    <tr>
        <td> Line-3 </td>
        <td> <input type='text' name='ítem[3][Size]'</td>
        <td> <input type='text' name='ítem[3][Color]'</td>
        <td> <input type='text' name='ítem[3][Price]'</td>
    </tr>
    <tr>
        <td> Line-4 </td>
        <td> <input type='text' name='ítem[4][Size]'</td>
        <td> <input type='text' name='ítem[4][Color]'</td>
        <td> <input type='text' name='ítem[4][Price]'</td>
    </tr>
    </table>
</form>

PHP示例代码:

for($i = 0;$i < count($_POST);$i++){
    var_dump($_POST[$i]);
}

错误:

Notice: Undefined offset: 0 in C:\xampp\htdocs\test\testing.php on line 5

如果我要使用js动态删除item [2],那么在提交php时会抛出一个错误,因为它无法找到数字2.怎么可能会这样呢?

也许我做得不对?

1 个答案:

答案 0 :(得分:5)

在您的PHP代码中,按照建议使用foreach

foreach($_POST['item'] as $item){
    echo $item['Size'] . "<br />";
    echo $item['Color'] . "<br />";
    echo $item['Price'] . "<br />";
    echo "<hr />"
}

修改

  

另一个问题我如何才能重新改变行数   删除第2行?

这是在JS或JQuery中完成的。类似的东西:

var i = 1;
$.each($("tr"), function(){
  $(this).next("input[name*='Size']").attr("name", "item[" + i + "][Size]");
  $(this).next("input[name*='Color']").attr("name", "item[" + i + "][Color]");
  $(this).next("input[name*='Price']").attr("name", "item[" + i + "][Price]");
  i++;
});