【问题标题】:How to get the right info to my <select> with php如何使用 php 为我的 <select> 获取正确的信息
【发布时间】:2016-01-31 20:59:52
【问题描述】:

所以我正在使用 php 并尝试将一些内容回显到数据库中的 &lt;select&gt; 选项。

首先,我想将所有汽车都回显给第一个 &lt;select&gt;(我可以这样做),然后我想将选定汽车的模型回显给下一个 &lt;select&gt;,但我不能这样做。我对所有这些东西都很陌生。我也在使用 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 标签内的部分,所以如果你能彻底地向我解释一下,那就太好了。

【问题讨论】:

  • 你能显示一些代码然后只有任何人可以帮助你
  • 把一些代码带到这里...
  • 如果您想在汽车 ID 旁边回显汽车型号,这是否意味着 $cars 和 $tutkinnonosat 实际上是两个大小相同但值不同的数组?
  • 抱歉,我在代码中输入了错误的名称。现在他们是对的。
  • 这可能有一些用处:stackoverflow.com/questions/34361452/… 数组只是用来显示什么在哪里——你可以用你的 sql 查询加载你的真实的东西。不过,您仍在提交页面。

标签: php model-view-controller echo


【解决方案1】:

听起来您想动态更新(即不刷新页面)第二个选择框,其中包含所选车型的型号。你不能只用 PHP 做到这一点。您需要使用 javascript 向具有所选汽车 ID 的服务器发送附加请求,然后返回模型列表以填充选择框。

如果您让选择汽车实际提交选择所在的表单(出于 UX 原因,我不建议这样做),然后您可以在 PHP 脚本中获取所选 ID然后相应地填充第二个选择框。

【讨论】:

  • 我应该用javascript做什么?很抱歉我对这些东西这么陌生。
  • 恐怕这个问题太笼统了。它涉及使用必要的数据对服务器进行 AJAX 调用,然后服务器以某种格式响应您需要的数据,然后您可以解析和循环以生成选择框的 HTML。我建议使用 jQuery。
【解决方案2】:

你大部分时间都在那里,但我有几个想法。

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"

【讨论】:

    猜你喜欢
    • 2015-03-23
    • 2015-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-18
    • 1970-01-01
    • 2021-12-26
    相关资源
    最近更新 更多