php - 使用 php 和 mysql 的多个下拉列表

标签 php mysql

我得到了包含多个表的数据库,例如地区/国家/州/等。我想根据所选的其他列表制作下拉列表。

我尝试了很多方法,但似乎没有任何效果。

这是我的最新版本:

核心.php:

 <html>
<body>

<script type="text/javascript" src="jquery-1.11.0.min.js"></script>
<script type="text/javascript">
function abc(){
            var val = document.getElementById('Region_ID').value;
            $.post("getSecondDropDown.php",{ Region_ID:val}, function( data ) {
            $("#Country_ID").html(data);

        });
 }
</script>


<form action="/NewService.php" id="ServiceForm" method="post">
  Name:<input type="text" name="Service_Name"></br>
  Region: <select name="Region_ID" onchange="abc()" form="ServiceForm">
 <?php

include('config.php');

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $conn->prepare("SELECT Region_ID, Region_Name FROM Regions"); 
    $stmt->execute();

    $result = $stmt->setFetchMode(PDO::FETCH_ASSOC); 

    foreach($stmt as $v) { 
    echo "<option value='" . $v['Region_ID'] ."'>" . $v['Region_Name'] ."</option>";

}
}
catch(PDOException $e) {
    echo "Error: " . $e->getMessage();
}
$conn = null;

?>
</select></br>


Country: <select name="Country_ID" form="ServiceForm">

</select></br>


  <input type="submit">
</form>

</body>
</html>

getSecondDropDown.php:

<?php
    $Region_ID =$_POST['Region_ID'];
    $option="";
              try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $stmt = $conn->prepare("SELECT Country_ID, Country_Name FROM Countries WHERE Region_ID ='$Region_ID'"); 
        $stmt->execute();

        $result = $stmt->setFetchMode(PDO::FETCH_ASSOC); 

        foreach($stmt as $v) { 
        echo "<option value='" . $v['Country_ID'] ."'>" . $v['Country_Name'] ."</option>";

    }
            echo $option;
      ?>

Image

最佳答案

这是你的问题,你没有在 select 标签中写入 id 属性

<select name="Region_ID" id="Region_ID" onchange="abc()" form="ServiceForm">
  <option></option>
</select>

并尝试使用 JavaScript:

<script type="text/javascript">
function abc(){
        var e = document.getElementById("Region_ID");
        var val = e.options[e.selectedIndex].value;
        $.post("getSecondDropDown.php",{ Region_ID:val}, function( data ) {
        $("#Country_ID").html(data);

    });
 }
 </script>

关于php - 使用 php 和 mysql 的多个下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39722184/

相关文章:

php - YII2 - 如何从表单中获取字段值以进行搜索

php - 如何像facebook news feed一样在一个页面中显示多表数据

php - 用PHP抓取YouTube上的视频

mysql - 触发器从另一个表插入值 - Mysql

mysql - 如何在 MySQL 中添加附加标题行

php - 如何从字符串中删除 NULL 字符

php - 使用类型提示时无法传递空参数

mysql - 尝试在 Ubuntu Server Apache 上下载主题时,某些虚拟主机上的 WordPress 'could not create directory' 问题

mysql - order 子句中的未知列

java - Hibernate 集合更新被唯一索引挫败