javascript - 在下拉列表中显示来自另一个文件的数据(php、mysql、javascript)

标签 javascript php mysql

我用 JavaScript 得到了多个数据库下拉列表,我想在下拉菜单中显示结果。但此时此刻,什么也没有表现出来。它显示地区(下拉菜单),但不显示国家(下拉菜单)

我的核心代码(我想在国家/地区下拉菜单中显示结果):

<html>
<body>

<script type="text/javascript" src="jquery-3.1.1.min.js"></script>
<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>


<form action="/NewService.php" id="ServiceForm" method="post">
  Name:<input type="text" name="Service_Name"></br>
  Region: <select name="Region_ID" id="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">
<script>document.write($("#Country_ID"))</script>
</select></br>


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

</body>
</html>

第二个 php 文件(getSecondDropDownMenu.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;
  ?>

我认为问题就在这里,但并不真正知道:

Country: <select name="Country_ID" form="ServiceForm">
<script>document.write($("#Country_ID"))</script>
</select></br>

最佳答案

在第二个文件 ( getSecondDropDownMenu ) 中,您需要创建一个函数

<?php
function functionName(){
$Region_ID =$_POST['Region_ID'];
$option[] = null;
          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) { 

array_push($option,  "<option value='" . $v['Country_ID'] ."'>" . $v['Country_Name'] ."</option>");

     }
  return option;
  }
?>

然后在另一个文件中第一个文件包含它 include('getSecondDropDownMenu.php');

然后做

$arrayForSecondDropdown[] = functionName();

然后执行 foreach 操作

 foreach($arrayForSecondDropdown as $v){
      echo $v;
}

关于javascript - 在下拉列表中显示来自另一个文件的数据(php、mysql、javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39723979/

相关文章:

javascript - 在函数中获取数组数据

PHP 执行 python 不工作

mysql - 尝试使用参数创建简单过程时出错 - 需要标识符

mysql - 使用 MySQL 查找一组匹配的单词

MySql 查询 - 多个 SELECT 语句

javascript - 如何捕获点击 View 框的 SVG 单击事件,而不是它上面的元素?

c# - 以编程方式点击网页

javascript - jQuery datetimepicker 输入文本在选择时间时显示日期 31/12/1899

php - 从 SimpleXmlElement 中读取命名空间属性(从 XMLReader 导入)

php - CakePHP 3 - 在自定义查找器中使用 IN...SELECT