Javascript 如何根据php中另一个下拉列表中的选择自动填充下拉列表?

Javascript 如何根据php中另一个下拉列表中的选择自动填充下拉列表?,javascript,php,ajax,oracle,dropdown,Javascript,Php,Ajax,Oracle,Dropdown,我读过一些类似的问题,但没有找到解决办法。 我正在尝试根据选择的另一个下拉列表获取下拉列表。第一个下拉列表是学校名称,选择后应获取该特定学校下的用户 数据库中有两个表。第一个表有一个名为schoolname的school name列,另一个名为person的表有一个名为school的列,该列是外键,也有名字和姓氏,在选择时应该提取 我指的是本教程 我尝试了以下代码: querys.php class Queries { public static function getSchool() {

我读过一些类似的问题,但没有找到解决办法。 我正在尝试根据选择的另一个下拉列表获取下拉列表。第一个下拉列表是学校名称,选择后应获取该特定学校下的用户

数据库中有两个表。第一个表有一个名为schoolname的school name列,另一个名为person的表有一个名为school的列,该列是外键,也有名字和姓氏,在选择时应该提取

我指的是本教程

我尝试了以下代码:

querys.php

class Queries {
public static function getSchool() {   
    $dbUser = "xxx";
    $dbPass = "xxxx";
    $dbConn = "(DESCRIPTION = (ADDRESS = (PROTOCOL=TCP)(HOST=xxxx)(PORT=1521))(CONNECT_DATA=(SID=xxxx)))";
    $conn = oci_connect($dbUser, $dbPass, $dbConn);
    $sql = oci_parse($conn,"SELECT  a.School,  a.SchoolName FROM SchoolName a WHERE a.FormDisplay = 'Y' ORDER BY a.SchoolName");
        return $sql;   
}  
}
form.php

<?php
require_once './functions/queries.php';
$getschool = new Queries();
?>

<div class="container">
<div class="panel panel-default">
    <div class="panel-body">
        <div id="addroles" class="hide" role="alert">
            <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
            <div id="resultRoleContent"></div>
        </div>  
             <form class="cmxform" action ='functions/processform.php' id="Form1" method="post">
           <legend> Form</legend>
            <label for="addname">Please Select School</label>
           <select class="form-control" name="school" id="school">
                <?php
                $nameslist = $getschool->getSchool();
                oci_execute($nameslist, OCI_DEFAULT);
                while ($row = oci_fetch_array($nameslist, OCI_ASSOC+OCI_RETURN_NULLS)) {
                    echo '<option value="' . $row['SCHOOLNAME'] . '">' . $row['SCHOOLNAME']. '</option>';
                }
                ?>
           </select>
            <label for="addname">Please Select Name</label>
           <select class="form-control" name="names" id="names">
                <?php
                
              
                ?>
           </select>
        </form>

    </div>
   </div>       
</div>

<script>
$(document).ready(function(){
 $('#school').change(function(){
 var schoolname = $(this).val();
 $('#names').find('option').not(':first').remove();

 // AJAX request
 $.ajax({
   url: 'getUsers.php',
   type: 'post',
   data: {request: 1, primaryschool: schoolpropername},
   dataType: 'json',
   success: function(response){
     var len = response.length;
     for( var i = 0; i<len; i++){
       var id = response[i]['primaryschool'];
       var firstname = response[i]['firstName'];
       var lastname = response[i]['lastName'];

       $("#names").append("<option value='"+id+"'>"+firstname+"</option>");

     }
   }
 });

  });
  });
</script>
getUsers.php

<?php
$dbUser = "xxxx";
$dbPass = "xxxx";
$dbConn = "(DESCRIPTION = (ADDRESS = (PROTOCOL=TCP)(HOST=xxxx)(PORT=1521))(CONNECT_DATA=(SID=xxxx)))";
$conn = oci_connect($dbUser, $dbPass, $dbConn);
$request = 0;
if(isset($_POST['request'])){
   $request = $_POST['request'];
}
if($request == 1){
   $schoolname = $_POST['school'];
   $sql =oci_parse($conn,"SELECT * FROM person ");
   oci_bind_by_name($sql, ':primaryschool', $schoolname);
   $result = oci_execute($sql);
   $response = array();
   foreach($result as $row){
       $response[] = array(
    "firstname" => $row['firstname']
      );
   }
   echo json_encode($response);
    exit;
 }
在上面的代码中,我得到以下三个错误:

PHP注意:未定义索引:getusers.PHP中的school 2.PHP警告:oci\u bind\u by\u name:ORA-01036:getusers.PHP中的非法变量名/编号 3.PHP警告:oci\u bind\u by\u name:ORA-01036:getusers.PHP中的非法变量名/编号 发生未定义错误,因为学校值未进入$\u POST数组。打印$\u post数组并检查您正在获取学校值的索引

您还没有在查询的WHERE子句中提到列名来获取特定学校的详细信息。所以你得到了警告。 您的查询应该如下所示

假设列名称为表中的学校名称

$sql =oci_parse($conn,"SELECT * FROM person WHERE  schoolname = :primaryschool");
oci_bind_by_name($sql, ':primaryschool', $schoolname);

我回复了$_帖子,将所选学校作为输出我也收到了以下错误:PHP警告:在这个链接上的getUsers.phpCheck中为foreach提供的参数无效。如何从查询中提取数据在这种情况下我如何才能这样做?你能帮忙吗?