Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.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 基于数据库表中的第一个下拉列表填充第二个下拉列表,而不使用javascript_Php_Mysql_Html - Fatal编程技术网

Php 基于数据库表中的第一个下拉列表填充第二个下拉列表,而不使用javascript

Php 基于数据库表中的第一个下拉列表填充第二个下拉列表,而不使用javascript,php,mysql,html,Php,Mysql,Html,我正试图为一个电子商务网站的管理员创建一个表单,管理员应该能够创建一个类别并添加新产品。 我的数据库中有两个表,我想从中填充下拉列表。我希望在选择第一个下拉列表值时填充第二个下拉列表,但我必须在不使用提交按钮的情况下进行填充 这是表格的代码,有两个下拉列表:- <form method="post" action="add_category.php"> <h4>Choose the root level:</h4>

我正试图为一个电子商务网站的管理员创建一个表单,管理员应该能够创建一个类别并添加新产品。 我的数据库中有两个表,我想从中填充下拉列表。我希望在选择第一个下拉列表值时填充第二个下拉列表,但我必须在不使用提交按钮的情况下进行填充

这是表格的代码,有两个下拉列表:-

    <form method="post" action="add_category.php">
                <h4>Choose the root level:</h4>
                <select name="rootLevel">
                     <?php
                     $conn = mysqli_connect("localhost","root","","store")
                     or die("Error in Connection on add_category");

                     $query = "SELECT * FROM root_category";
                     $result = mysqli_query($conn,$query) or die("Query failed add_category");
                     $id=1;
                     //echo $id;
                     //echo "Hello";
                        while($row = mysqli_fetch_assoc($result)){
                            global $id;
                            //echo "<h1>$id</h1>";
                            $id = $row['id'];
                            echo "<option name='rootLevel' value=$id>".$row['Name']."</option>";
                            //echo "<option>$id</option>";
                            }

                        ?>
                </select>
                <br><br>
                <h4>Choose the Level 1 Category:</h4>

                <select name="level1">
                    <?php
                    global $id;
                    //echo "<option>".$_POST['rootLevel']."</option>";
                    $query_level1 = "Select * from level1_category Where P_id = $id";
                    $result1 = mysqli_query($conn,$query_level1) or die("Query failed level 1");
                    while($row = mysqli_fetch_assoc($result1)){
                        $id1 = $row['P_id'];
                        echo "<option name='level1' value=$id1>".$row['Name']."</option>";
                    }
                    ?>
                </select>

选择根级别:


选择级别1类别:

我已经成功地填充了第一个下拉列表,现在我想在不使用提交按钮的情况下获取'resultValue'中的$id。

仅使用PHP无法完成此操作。您必须使用jquery或Ajax来实现这一点。 请检查此示例页面。这可能对你有帮助


$(文档).ready(函数(){
$(“select.country”).change(函数(){
var selectedCountry=$(“.country选项:selected”).val();
$.ajax({
类型:“POST”,
url:“states.php”,
数据:{country:selectedCountry}
}).完成(功能(数据){
$(“#states”).html(数据);
});
});
});
国家
选择。。。
州/省
选择。。。

<head>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
  <script>
  $(document).ready(function(){
      $("select.country").change(function(){
          var selectedCountry = $(".country option:selected").val();
          $.ajax({
              type: "POST",
              url: "states.php",
              data: { country : selectedCountry } 
          }).done(function(data){
              $("#states").html(data);
          });
      });
  });
  </script>
</head>
<body>
   <div class="form-group">
                        <label for="country" class="input__label">Country</label>
                        <select id="country" onchange="states(this.value);" name="country" class="country form-control login_text_field_bg input-style">
                            <option selected>Choose...</option>
                            <?php
                              $sql= $cnn->prepare("SELECT key_iso_code FROM country");
                              $sql->execute();
                              while($i = $sql-> fetch($cnn::FETCH_ASSOC)){
                                      extract($i);
                                      ?>
                                      <option><?php echo $key_iso_code ?></option>
                                      <?php     
                              }
                            ?>
                            
                        </select>
                    </div>
<div class="form-group col-md-4">
                        <label for="inputState" class="input__label">State/Province</label>
                        <select id="states" name="state" class="form-control input-style">
                            <option selected>Choose...</option>
                        </select>
                    </div>
</body>
<?php
    include("PDOConnection.php");

    if(isset($_POST["country"])){
        // Capture selected country
        $country = $_POST["country"];
         
        // Display city dropdown based on country name
        if($country !== 'Shoose...'){
            
            $sql= $cnn->prepare("SELECT state.key_name FROM country INNER JOIN state ON country.key_id = state.key_country_id WHERE country.key_iso_code like '$country'");                       
            $sql->execute();
            while($i = $sql-> fetch($cnn::FETCH_ASSOC)){
                    extract($i);
                    echo "<option>". $key_name . "</option>";
                        
            }
        } 
    }
?>