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

时间:2018-11-04 09:26:23

标签: php html mysql sql select

我知道这个话题之前已经讨论过了,不便之处,敬请原谅。我不想得罪任何人。我只是无法在代码中应用任何建议的解决方案策略。

这就是我所拥有的:Web服务器上的一个MySQL-DB,它已经启动并正在运行。该数据库包含一个名为worldcities的表,其中存储了Countrys,Cities及其纬度/经度值。

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

答案 0 :(得分:0)

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

这是基本组成部分-

  1. 在第一个选择框更新时,使用Javascript事件处理程序触发。
  2. 将AJAX调用返回到Web服务器以调用PHP方法。
  3. 方法将查询数据库,以获取由所选国家/地区过滤的城市列表。结果回显到前端。
  4. JavaScript读取结果并更新城市选择框。

这里有很多概念可以帮助您解决问题,但也可以参考许多教程并从中汲取灵感。 https://www.youtube.com/watch?v=tMmXzjJWlnU