首页 > 解决方案 > 基于先前选择从 mysql 中选择 HTML

问题描述

我目前正在建立一个网站。我想用 3 个 HTML 选择字段实现一个功能。

我能够完全获取所有不同的城市、街道和建筑物。然而,这并不是我所需要的,因为它们都被洗牌了,你无法真正看到某个城市是否有某条街道。

这是我想到的算法:

先决条件:除此之外的所有下拉菜单city均已禁用,并且仅在选择上方的下拉菜单时才启用。

我对网站开发非常陌生,所以请在这里耐心等待,如果可能的话 - 为我指明正确的方向。

我目前的实现:

<select name="city">
                <?php
                if ($result = mysqli_query($conn, $queryCity)) {
                    if (mysqli_num_rows($result) > 0) {
                        while ($row = mysqli_fetch_array($result)) {
                            echo "<option value='" . $row['city'] . "'>" . $row['city'] . "</option>";
                            $selected = $row['city'];
                        }
                    }
                }
                ?>
            </select>
            <select name="street">
                <?php
                if ($result = mysqli_query($conn, $queryStreet)) {
                    if (mysqli_num_rows($result) > 0) {
                        while ($row = mysqli_fetch_array($result)) {
                            echo "<option value='" . $row['city'] . "'>" . $row['city'] . "</option>";
                            $selected = $row['city'];
                        }
                    }
                }
                ?>
            </select>
            <select name="building">
                <?php
                if ($result = mysqli_query($conn, $queryBuilding)) {
                    if (mysqli_num_rows($result) > 0) {
                        while ($row = mysqli_fetch_array($result)) {
                            echo "<option value='" . $row['city'] . "'>" . $row['city'] . "</option>";
                            $selected = $row['city'];
                        }
                    }
                }
                ?>
            </select>

标签: phphtmlhtml-select

解决方案


你的算法可以这样工作。
但是,如果用户选择了一个城市,您可能需要重新加载页面或使用异步请求(例如 AJAX)获取内容。您可以将城市作为 GET 或 POST 参数传递,如果设置了该参数,则搜索街道并启用下拉菜单,否则只需禁用下拉菜单。这同样适用于建筑物。

当使用带有用户输入的查询时,请使用准备好的语句而不是普通查询,您不想被Little Bobby Tables访问;)


推荐阅读