php - 根据第一个(PHP)中的选择,使用 SQL 中的内容填充第二个选择框
问题描述
我知道这个话题之前已经讨论到死了,我很抱歉造成任何不便。我不想冒犯任何人。我只是无法在我的代码上应用任何建议的解决方案策略。
这是我所拥有的:网络服务器上的 MySQL-DB,它已启动并正在运行。该数据库包含一个名为 worldcities 的表,其中存储了国家、城市及其纬度/经度值。
我的服务器上有一个 PHP 文件,它成功建立连接并读出所有国家并填充第一个选择框。我的第二个选择框应该包含所有基于第一个框中国家选择的城市。我的代码当前包含一个占位符 SQL 查询。
我了解 PHP 是一种服务器端技术,需要帮助才能与客户端的用户输入进行交互。我只是不知道如何在这里解决我的问题。
有人可以帮助/指导我解决我的问题吗?这对我来说意味着整个世界。非常感谢您提前。
代码:
<?php
$dbhost = "xxx";
$dbname = "xxx";
$dbtable = "xxx";
$dbuser = "xxx";
$dbpass = "xxx";
try{
$pdo = new PDO( "mysql:host=$dbhost;dbname=$dbname;charset=UTF8", "$dbuser", "$dbpass" );
$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
}
catch( PDOException $e ){
echo $e->getMessage();
die();
}
$query_country_start = $pdo->query( "SELECT Country FROM $dbtable GROUP BY Country" );
$query_city_start = $pdo->query( "SELECT City FROM $dbtable ORDER BY City" );
?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Select Country and City</title>
</head>
<body>
<h1>Select Country and City</h1>
<div id="cities">
<p>Start Country</p>
<?php
echo '<select name="country_start">';
while ($row = $query_country_start->fetch(PDO::FETCH_ASSOC)) {
echo '<option value="'.$row['Country'].'">'.$row['Country'].'</option>';
}
echo '</select><br><br>';
?>
<p>Start City</p>
<?php
echo '<select name="city_start">';
while ($row = $query_city_start->fetch(PDO::FETCH_ASSOC)) {
echo '<option value="'.$row['City'].'">'.$row['City'].'</option>';
}
echo '</select>';
?>
</div>
<script>
</script>
</body>
</html>
解决方案
填充第二个盒子要困难得多。这是因为您现在想要根据用户选择填充一个框。
以下是基本组件 -
- 使用 Javascript 事件处理程序在第一个选择框更新时触发。
- 向 Web 服务器触发 AJAX 回调以调用 PHP 方法。
- 方法将查询数据库以获取按所选国家/地区过滤的城市列表。结果回显到前端。
- Javascript 读取结果并更新城市选择框。
这里有很多概念可以让您一头雾水,但也有很多教程可供您学习并从中汲取灵感。 https://www.youtube.com/watch?v=tMmXzjJWlnU
推荐阅读
- vba - DIR function retrieving the file, but not the file name
- php - php将mysql结果存储到memcache
- cypher - geohashTrie 用于位置节点
- docker - Docker 群网络 DNS
- cakephp - 如何在 cakephp 分页中设置 maxLimit
- c# - 无法通过派生类使用 ObservableCollection 方法更新 ListView
- r - 如何在 R 中使用 apply 来设置所需列的子集,其余的则用空格填充?
- neural-network - Caffe:这两个网络有什么区别?
- c# - TransactionScope 中的 DbContext.SaveChanges() 可见性
- sql - 如何在没有关系的情况下加入基地?