我目前正在使用php中的 "车库 "功能,其中我有一个关于 $car_id
和a $city_id
. 我想在所选城市有能力卖出x量的车。
由于我有相同的 $car_id
在多辆汽车的情况下,例如 $car_id[0] = "Chevy"
当我试图在城市0而不是城市1出售雪佛兰时,会出现一个问题,因为它只取雪佛兰的数量,而不是按城市划分。
我想知道是否有任何方法可以从一个输入字段中获得两个值。['city']['car_id']
<input type="text" name="['city']['car_id']" placeholder="0">
我希望能够在这个输入字段中写上 "10",然后它将在给定的城市中销售10辆汽车。
一个可能的解决方案是使用字段集的概念。想象一下,汽车、城市和汽车数量这三个不同的值被存储在一个容器中。
<form name="form" method="post" action="">
<fieldset>
<input type="hidden" name="values[0][car_id]" value="1">
<input type="hidden" name="values[0][city_id]" value="1">
<input type="number" name="values[0][amount]" value="0" min="0" max="10">
</fieldset>
<fieldset>
<input type="hidden" name="values[1][car_id]" value="2">
<input type="hidden" name="values[1][city_id]" value="1">
<input type="number" name="values[1][amount]" value="0" min="0" max="10">
</fieldset>
<input type="submit" value="Save" name="submit">
</form>
正如你所看到的,输入元素的名称属性是用以下方式来说明的 values[n][name]
. n
是迭代器的计数。name
是属性的具体名称。这样就形成了一个多维数组,里面存放着输入的数据。这样就保证了各个属性之间的分配。特定城市的特定汽车的数量。
这个结构假设你在不同的城市中迭代。每个城市可以包含若干辆汽车,你可以为其指定一定的金额。
如果你填写并提交上面给出的表格,它的结果是这样的 $_POST
数据结构。
array(2) {
["values"] => array(2) {
[0] => array(3) {
["car_id"] => string(1) "1"
["city_id"] => string(1) "1"
["amount"] => string(1) "1"
}
[1] => array(3) {
["car_id"] => string(1) "2"
["city_id"] => string(1) "1"
["amount"] => string(1) "2"
}
}
["submit"] => string(9) "Save"
}
这个结构很容易迭代。
foreach ($_POST['values'] as $data) {
echo "City ID: " . $data['city_id'] . PHP_EOL;
echo "Car ID: " . $data['car_id'] . PHP_EOL;
echo "Amount: " . $data['amount'] . PHP_EOL;
}
这个方案正好代表了你想要的东西。一套特定城市的特定汽车。