php - 基于先前选择从 mysql 中选择 HTML
问题描述
我目前正在建立一个网站。我想用 3 个 HTML 选择字段实现一个功能。
city
street
building
我能够完全获取所有不同的城市、街道和建筑物。然而,这并不是我所需要的,因为它们都被洗牌了,你无法真正看到某个城市是否有某条街道。
这是我想到的算法:
先决条件:除此之外的所有下拉菜单city
均已禁用,并且仅在选择上方的下拉菜单时才启用。
- 第 1 步:用户
city
通过下拉菜单选择 - 第 2 步:然后将所有
streets
这些city
从 MySQL 提取到street
下拉列表中,现在它已启用。 - 第 3 步:用户
street
通过下拉菜单选择 - 第 4 步:然后将所有
buildings
这些street
从 MySQL 提取到building
下拉列表中,现在它已启用。
我对网站开发非常陌生,所以请在这里耐心等待,如果可能的话 - 为我指明正确的方向。
我目前的实现:
<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>
解决方案
你的算法可以这样工作。
但是,如果用户选择了一个城市,您可能需要重新加载页面或使用异步请求(例如 AJAX)获取内容。您可以将城市作为 GET 或 POST 参数传递,如果设置了该参数,则搜索街道并启用下拉菜单,否则只需禁用下拉菜单。这同样适用于建筑物。
当使用带有用户输入的查询时,请使用准备好的语句而不是普通查询,您不想被Little Bobby Tables访问;)
推荐阅读
- visual-studio - 双击 Visual Studio 2019 时如何禁用编辑项目?
- c# - 从继承 networkBehviour 的类继承
- javascript - 在 document.getElementsByTagName 上使用索引值
- c# - 如何在asp.net C#中使用启用两因素身份验证的office365电子邮件帐户发送电子邮件?
- c# - 错误 CS1061 表示字符串不包含定义
- azure-devops - 如何使用 Azure DevOps 在 CI 管道中按特定顺序运行自动化脚本?
- spring-boot - Spring JMS 侦听器未收到带有 Number MessageAttribute 的 SQS 消息
- hyperledger-fabric - 可以从区块链中删除旧块数据吗?
- python - node2vec 是否支持负边权重?
- r - dplyr 中的“group_by”功能不起作用 - 在控制台中注册为“group_by_”