通过PHP连接具有相同名称的输入值

时间:2014-08-26 23:03:11

标签: javascript php jquery html html5

我的表单中包含相同名称但值不同的输入组:

<form method="POST">
    <div class="move_menu_item_inputs">
        <input type="text" name="menu_item_name" value="Pizza">
        <input type="text" name="plus_minus_qty" value="1">
    </div>

    <div class="move_menu_item_inputs">
        <input type="text" name="menu_item_name" value="Sandwich">
        <input type="text" name="plus_minus_qty" value="3">
    </div>
</form>

此时我可以连接最新输入组的一个输入值

所以......这个

$concatenate = $_POST['plus_minus_qty'] . "x" . $_POST['menu_item_name'];

会有结果:

$concatenate = 3x Sandwich

我需要在变量中获得 1x Pizza,3x Sandwich !有人可以帮忙吗?

2 个答案:

答案 0 :(得分:5)

除非您更改变量的名称,否则无法获得该结果,因为只要它们共享名称,第二对控件将始终胜过第一个控件。

最简单的解决方案是将[]附加到所有名称,这将使$_POST内的相应值成为数组。然后你可以做类似的事情:

$stuff = array_combine($_POST['menu_item_name'], $_POST['plus_minus_qty']);
$descriptions = [];
foreach ($stuff as $ingredient => $quantity) {
    $descriptions[] = $quantity."x ".$ingredient;
}

$concatenate = implode(', ', $descriptions);

答案 1 :(得分:1)

Php post var数组需要唯一的键名。

我会把名字命名为值。所以它是这样的:

<div class="move_menu_item_inputs">

    <input label="pizza" type="text" name="pizza" value="?">
</div>

<div class="move_menu_item_inputs">
    <input label="donuts" type="text" name="donuts" value="?">
</div>

为了创建连接部分,它是这样的:

$concat = '';
foreach( $_POST as $name => value )
{
    $concat += $name . "=" $value;
}