【问题标题】:Linking two php dynamic dropdown lists链接两个php动态下拉列表
【发布时间】:2013-11-30 05:51:28
【问题描述】:

我需要一点帮助>_

第一个包含汽车制造商的表称为 list_vehicle_marks 列

标识 |价值

第二个表,填充了名为 list_vehicle_models 的汽车模型,并具有以下列;

标识 |价值 | mark_id

mark_id 列的值与第一个表中的 id 相同,换句话说,福特的 id 号。 37 和所有福特车型的 mark_id 也为 37。

如何创建两个动态下拉菜单,其中第二个菜单仅显示基于在第一个菜单中选择的制造商的模型?

这是我到目前为止所做的:

<?php

connection to host, db, blah blah

if ($db->connect_error) {
echo "Failed to connect to MySQL: (" . $db->connect_error . ") "
. $db->connect_error;
} else {
$sql = "SELECT value FROM list_vehicle_marks";
$result_db = $db->query($sql);
if (!$result_db) {
    echo $db->error . ' Error perform query!';
} else {
    echo '<select name="value">';
    echo '<option value="">Select...</option>';
    while ($row = $result_db->fetch_object()) {
        echo '<option value="' . $row->value . '">';
        echo $row->value;
        echo '</option>';
    }
    echo '</select>';
}
}
$db->close(); 
?>

【问题讨论】:

    标签: php mysql dynamic drop-down-menu


    【解决方案1】:

    在您发布的代码中,您创建的下拉菜单应该是这样的

    echo '<option value="' . $row->id. '">';
    echo $row->value;
    echo '</option>';
    

    注意 $row->id 而不是 $row->value

    要填充相应的下拉列表,您有两个选项:

    1. 一旦用户从标记下拉列表中选择一个值,您就会触发一个 PHP 函数,该函数获取相应车型的值并重新渲染页面(您使用 javascript 捕获用户选择的 id)

    2. 您获取所有车辆模型以及车辆标记(在上面的代码中添加另一个查询以获取所有模型),将模型查询的结果保存在 JavaScript 变量中,并使用 JavaScript 生成第二个下拉列表一次用户做出选择。在这里,您也可以捕获用户的选择并调用一个 javascript 函数,该函数会吐出相应的 id 下拉菜单。

    如果您的模型表有大量数据,则第二种方法不是一个好的选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 1970-01-01
      • 2012-07-17
      • 1970-01-01
      • 2016-05-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多