如何获取多值多字段

时间:2010-12-13 03:24:03

标签: php html forms

我有一个表单,我重复相同的字段,因为我没有用户,如果他有多个项目发送第一个项目,他做agin和agin我想从第一次添加所有项目他有,所以我不止一次地使用相同的必填字段。

<form>
    <select name="items[]">
    <option value="clothes">Clothes</option>
    <option value="shoes">Shoes</option>
    </select>
    <input type="text" name="color[]" />

    <select name="items[]">
    <option value="clothes">Clothes</option>
    <option value="shoes">Shoes</option>
    </select>
    <input type="text" name="color[]" />
</form>

我知道如何只得到一个这样的字段:name =“color []”我可以得到结果:

while(list($key,$value) = each($_POST['color'])){

if(!empty($value)){

echo $_POST['color'][$key];
echo "<br />" ;

}}

但现在我想获得所有值“选择项目和颜色”

我在这里制作了这段代码,我得到了所有结果 但它没有相互联系!!!

像这样: 衣服 鞋 红色 蓝色

我想这样: 衣服,红 鞋 - 蓝

这是我制作的代码但是我不满意

while(list($key,$value) = each($_POST['input'])){

if(!empty($value)){

echo $_POST['input'][$key];
echo "<br />" ;

}}

while(list($key,$value) = each($_POST['items'])){

if(!empty($value)){

echo $_POST['items'][$key];
echo "<br />" ;

}}

任何人都可以帮助我:)

谢谢,

2 个答案:

答案 0 :(得分:1)

将您的选择和输入名称更改为此

<select name="items[0][type]">
<input name="items[0][color]">

<select name="items[1][type]">
<input name="items[1][color]">

然后你可以使用

迭代每对
foreach ($_POST['items'] as $item) {
    $type = $item['type'];
    $color = $item['color'];
}

修改忘记为每对添加索引以将它们组合在一起

答案 1 :(得分:1)

你有两个阵列:

$items = array(0 => 'clothes', 1 => 'shoes')
$color = array(0 => 'blue', 1 => 'red')

连续循环播放两个阵列当然会给你“衣服,鞋子,蓝色,红色”。由于$items的索引0对应于$color的索引0,因此您需要一次访问两个数组中的相应索引:

for ($i = 0; $i < count($items); $i++) {
    echo $items[$i] . ' - ' . $color[$i];
}