我的表单中包含相同名称但值不同的输入组:
<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 ”!有人可以帮忙吗?
答案 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;
}