[英]How to get the right info to my <select> with php
因此,我正在使用php并尝试将某些内容回显到数据库中的<select>
选项。
首先,我想将所有Car都回显到第一个<select>
(我可以做到),但是随后我想将SELECTED Car的模型回响到下一个<select>
而我不能做到这一点。 我对所有这些东西都是新手。 我也在使用MVC。
从视图:
<select name="card_id">
<?php foreach ($cars as $car) {
if (isset($car->id)) {
echo "<option value=\"" . $tcar->id . "\">";
echo $car->car . "</option>\n";
}
} ?>
</select>
<p>Choose model</p>
<select name="model_id">
<?php foreach ($models as $model) {
if (isset($model->id)) {
echo "<option value=\"" . $model->id . "\">";
echo $model->model . "</option>\n";
}
} ?>
</select>
从模型视图:
public function getAllCars()
{
$sql = "SELECT * FROM cars";
$query = $this->db->prepare($sql);
$query->execute();
return $query->fetchAll();
}
我不知道用来挑选汽车模型的模型应该是什么样子,但是我想应该是这样的:
public function getmodels()
{
$sql = "SELECT * FROM models WHERE
$query = $this->db->prepare($sql);
$query->execute();
return $query->fetchAll();
}
另外,我还没有完全理解select标记内的部分,因此,如果您可以向我彻底解释它,那将是很好的。
听起来您想使用所选汽车类型的模型动态更新(即不刷新页面)第二选择框。 您不能仅使用PHP来做到这一点。 您需要使用javascript将具有所选汽车ID的其他请求发送至服务器,然后返回模型列表以填充选择框。
如果你做出选择汽车实际提交表单,这个选择是内部(我不会推荐制的UX的原因),那么你可以抢在选择的ID在你的PHP脚本,然后相应地填充第二个选择框。
您大部分在那儿,但我有几点想法。
1)您需要稍微修改数据库。 您的模型表需要一个carId字段,您所选择的汽车ID($ id)可以映射到该字段
#cars example
id name
1 Ford
2 Chevy
#models example
id carId name
1 1 Mustang
2 1 Taurus
3 2 Camaro
4 2 Corvettte
2)正如少数人指出的那样,如果您试图将汽车选择器和模型选择器保持在同一页面上,则需要进行一些扎实的JavaScript工作。 现在让我们坚持使用PHP。 这需要一个人选择汽车,点击“提交”,然后转到下一页以选择模型
3)在下一页上,您可以通过查询访问所有相关模型,例如
"select * from models where carId = $id"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.