Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用PHP实现动态下拉_Php_Html_Ajax - Fatal编程技术网

用PHP实现动态下拉

用PHP实现动态下拉,php,html,ajax,Php,Html,Ajax,目前,我正在使用PHP做一个动态下拉列表。但我有一些问题。我想不出来。它不会检索第二个下拉列表值。我是这样做的。我想要的是,当我们选择一个项目名称时,品牌名称应该检索到第二个下拉列表 AddItem.php-下拉代码 <?php require 'GetBrand.php'; $ItemName = LoadItemName(); ?> <!doctype html> <html> <head> <script src="https:/

目前,我正在使用PHP做一个动态下拉列表。但我有一些问题。我想不出来。它不会检索第二个下拉列表值。我是这样做的。我想要的是,当我们选择一个项目名称时,品牌名称应该检索到第二个下拉列表

AddItem.php-下拉代码

<?php
require 'GetBrand.php';

$ItemName = LoadItemName();


?>
<!doctype html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

<script type="text/javascript">

    $(document).ready(function(){
            $("#ItemName").change(function(){
                var aid = $("#ItemName").val();
                $.ajax({
                    url: 'GetBrand.php',
                    method: 'post',
                    data: 'aid=' + aid
                }).done(function(brand){
                    console.log(brand);
                    brand = JSON.parse(brand);
                    $('#brand').empty();
                    brand.forEach(function(Bname){
                        $('#brand').append('<option>' + Bname.brand + '</option>')
                    })
                })
            })
        })
    </script>
</head>
<body>
<form name="form1" action="AddItem.php" method="post">


     <div class="form-group">
            <label for="text">Item Name</label>
             <table>
                 <tr>
                     <td style=" border: 8px solid transparent; min-width: 150px; width: auto; "><select class="form-control show-tick" name="ItemName" id="ItemName" required>

                        <option value="" disabled="" selected>Select Name</option>
                        <?php foreach($ItemName as $iname)

                          echo "<option id='".$iname['ItemName']."' value='".$iname['ItemName']."'>".$iname['ItemName']."</option>";

                        ?>

                  </select></td>


                 <td style=" border: 8px solid transparent; min-width: 150px; width: auto;padding: 10px 0 0 15px; "><label for="text">Add Item Name : </label></td>

                 <td style=" border: 8px solid transparent; min-width: 150px; width: auto;padding: 10px 0 0 10px;"><input type="text" name="name" id="name"  class="form-control" > </td>

                 <td style=" border: 5px solid transparent;min-width: 150px; width: auto; padding: 10px 0 0 10px;"><button type="submit" class="btn btn-info">Add</button></td>
              </tr>
         </table>
      </div>
  <div class="form-group">

       <label for="text">Brand Name</label>
         <table>
               <tr>
                   <td style=" border: 8px solid transparent; min-width: 150px; width: auto; padding: 10px 0 0 10px; "><select class="form-control show-tick" name="    brand" id=" brand" required>

                     <option value="">Please select</option>

                    </select></td>

                    <td style=" border: 8px solid transparent; min-width: 150px; width: auto;padding: 10px 0 0 15px;"><label for="text">Add Brand : </label></td>

                    <td style=" border: 8px solid transparent;min-width: 150px; width: auto;padding: 10px 0 0 10px;"><input type="text" name="Bname" id="Bname"  class="form-control" > </td>

                   <td style=" border: 5px solid transparent;padding: 10px 0 0 10px;"><button type="submit" class="btn btn-info">Add</button></td>
                 </tr>
            </table>
        </div>
</form>
</body>                           
</html>

$(文档).ready(函数(){
$(“#ItemName”).change(函数(){
var-aid=$(“#ItemName”).val();
$.ajax({
url:'GetBrand.php',
方法:“post”,
数据:“aid=”+aid
}).完成(功能(品牌){
控制台日志(品牌);
brand=JSON.parse(brand);
$('品牌').empty();
brand.forEach(功能(Bname){
$(“#品牌”)。附加(“”+Bname.brand+“”)
})
})
})
})
项目名称
选择名称
添加项目名称:
添加
品牌名称
请选择
添加品牌:
添加
Database.php

<?php

class Database{

        private $host = 'localhost';
        private $dbName = 'librarystock';
        private $user = 'root';
        private $pass = '';
        public function connect() {

            try {
                   $conn = new PDO('mysql:host=' . $this->host . '; dbname=' . $this->dbName, $this->user, $this->pass);

                    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

                    return $conn;
                } catch( PDOException $e) {
                    echo 'Database Error: ' . $e->getMessage();
                }
            }

    }
?>

GetBrand.php

<?php
    require "Database.php";

    if(isset($_POST['aid'])){

            $db = new Database;
            $conn = $db -> connect();

            $stmt = $conn->prepare("SELECT * FROM stockdetails WHERE ItemName = "  .$_POST['aid']);
            $stmt -> execute();
            $brand = $stmt->fetchAll(PDO::FETCH_ASSOC);
            echo json_encode($brand);

    }

    function LoadItemName(){

        $db = new Database;
        $conn = $db -> connect();

        $stmt = $conn->prepare("SELECT * FROM stockdetails");
        $stmt -> execute();
        $ItemName = $stmt->fetchAll(PDO::FETCH_ASSOC);
        return $ItemName;

    }


?>

替换此项,您的id中有一个空格

<select class="form-control show-tick" name="    brand" id=" brand" required>
        <option value="">Please select</option>
</select></td>

请选择


请选择

小心!您的代码易受SQL注入攻击。有关更多信息,请检查您是否在console.log(brand);)中获得json;?不我不是..你能做var_dump($brand)吗;在GetBrand.php中,在echo json_encode()之前;好吧,我做到了…还是一样。。但我在控制台中遇到错误。
<select class="form-control show-tick" name="brand" id="brand" required>
        <option value="">Please select</option>
</select></td>