Vil*_*ius 1 javascript php forms arrays jquery
我有一个具有相同产品但具有不同属性的表单.表单看起来类似于:
<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>
Run Code Online (Sandbox Code Playgroud)
PHP示例代码:
for($i = 0;$i < count($_POST);$i++){
var_dump($_POST[$i]);
}
Run Code Online (Sandbox Code Playgroud)
错误:
Notice: Undefined offset: 0 in C:\xampp\htdocs\test\testing.php on line 5
Run Code Online (Sandbox Code Playgroud)
如果我是使用js动态删除项[2],在提交php会抛出错误,因为它无法找到数字2.怎么可能这样做?
也许我做得不对劲?
在您的PHP代码中,foreach按照建议使用:
foreach($_POST['item'] as $item){
echo $item['Size'] . "<br />";
echo $item['Color'] . "<br />";
echo $item['Price'] . "<br />";
echo "<hr />"
}
Run Code Online (Sandbox Code Playgroud)
编辑:
另一个问题,一旦我删除第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++;
});
Run Code Online (Sandbox Code Playgroud)