我目前正在用php开发一个“车库”功能,其中我有一个$car_id和一个$city_id。我想有能力销售x数量的汽车在选定的城市。
因为我在多辆车上有相同的$car_id,例如。$car_id[0] = "Chevy"当我试图在城市0而不是城市1销售雪佛兰时,有一个问题,因为它只需要雪佛兰的数量,而不是按城市拆分。
我想知道是否有任何可能的方法来从输入字段中获取2个值。例如。['city']['car_id']
<input type="text" name="['city']['car_id']" placeholder="0">
我希望能够在这个输入中输入" 10 ",它将在给定的城市销售10辆汽车。
发布于 2020-05-21 19:29:59
一种可能的解决方案是使用字段集的概念。想一想汽车的三个不同的值,城市和汽车存储在一个容器中的数量。
<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;
}这个解决方案恰好代表了你想要的。用于特定城市的一组特定的汽车。
https://stackoverflow.com/questions/61932522
复制相似问题