2013-03-12 18 views
0

我有一个简单的形式,如:在形式合并数组

<tr data-good-id="1"> 
    <td><input type="text" name="good_id[item1]" value="1"/></td> 
    <td><input type="text" name="size[item1]" value="XL"/></td> 
    <td><input type="text" name="color[item1]" value="White"/></td> 
    <td><input type="text" name="count[item1]" value="1"/></td> 
</tr> 
<tr data-good-id="2"> 
    <td><input type="text" name="good_id[item2]" value="2"/></td> 
    <td><input type="text" name="size[item2]" value="L"/></td> 
    <td><input type="text" name="color[item2]" value="Black"/></td> 
    <td><input type="text" name="count[item2]" value="10"/></td> 
</tr> 

,我需要执行该功能为表的每一行提交之后:

foo_func($good_id, $size, $color, $count); 

样品:

foo_func('1', 'XL', 'White', '1'); 
foo_func('2', 'L', 'Black', '10'); 

如何制作它?我没有想到超越。

+2

那么,什么是你的问题? – Neograph734 2013-03-12 14:40:49

回答

1

我认为最好的一个项目中包含的属性,而不是包含项的属性。像这样做:

<tr data-good-id="1"> 
    <td><input type="text" name="item[1][good_id]" value="1"/></td> 
    <td><input type="text" name="item[1][size]" value="XL"/></td> 
    <td><input type="text" name="item[1][color]" value="White"/></td> 
    <td><input type="text" name="item[1][count]" value="1"/></td> 
</tr> 
<tr data-good-id="2"> 
    <td><input type="text" name="item[2][good_id]" value="2"/></td> 
    <td><input type="text" name="item[2][size]" value="L"/></td> 
    <td><input type="text" name="item[2][color]" value="Black"/></td> 
    <td><input type="text" name="item[2][count]" value="10"/></td> 
</tr> 

,然后用运行功能,为每个项目

foreach ($item as $c_item) { 
    foo_func($c_item['good_id'],$c_item['size'],$c_item['color'],$c_item['count']); 
} 
+0

你是天才! – user1802209 2013-03-12 14:57:14

2

假设数据是安全的......试试这个:

foreach ($_POST[good_id] as $index => $good_id) { 
    foo_func($good_id, $_POST['size'][$index], $_POST['color'][$index], $_POST['count'][$index]); 
} 
+0

您在第一个索引中缺少$;) – Neograph734 2013-03-12 14:42:46

+0

@ Neograph734固定,谢谢 – MosheK 2013-03-12 14:43:04

+0

谢谢!我没有想到它.. – user1802209 2013-03-12 14:47:05