根据第一个(PHP)中的选择,用SQL中的内容填充第二个选择框



我知道这个话题以前已经被讨论得死去活来了,很抱歉给您带来不便。我不想得罪任何人。我只是无法将任何建议的解决方案策略应用到我的代码中。

以下是我所拥有的:一个网络服务器上的MySQL数据库,它已经启动并运行。该数据库包含一个名为worldcities的表,其中存储了Countrys、Cities及其Lat/Lon值。

我的服务器上有一个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>

填充第二个框要困难得多。这是因为您现在想要根据用户选择填充一个框。

以下是基本组件-

  1. 当更新第一个选择框时,使用Javascript事件处理程序来激发
  2. 向web服务器发出AJAX调用以调用PHP方法
  3. 方法将查询数据库,以获得按所选国家筛选的城市列表。结果会返回到前端
  4. Javascript读取中的结果并更新城市选择框

这里有很多概念可以让你思考,但也有很多教程可以让你学习并从中汲取灵感。https://www.youtube.com/watch?v=tMmXzjJWlnU

最新更新