【问题标题】:Populating Second Dropdown Based on first dropdown from the database table without using javascript根据数据库表中的第一个下拉列表填充第二个下拉列表而不使用 javascript
【发布时间】:2018-07-11 08:57:55
【问题描述】:

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

这是带有两个下拉菜单的表单代码:-

    <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>

我已经成功填充了第一个下拉菜单,现在我想在没有提交按钮的情况下获取“resultValue”中的 $id。

【问题讨论】:

    标签: php mysql html


    【解决方案1】:

    你不能只用 PHP 做到这一点。您必须使用 jquery 或 Ajax 来执行此操作。 请检查此示例页面。这可能对你有帮助

    https://www.tutorialrepublic.com/faq/populate-state-dropdown-based-on-selection-in-country-dropdown-using-jquery.php

    https://www.codexworld.com/dynamic-dependent-select-box-using-jquery-ajax-php/

    【讨论】:

      【解决方案2】:
      <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>";
                              
                  }
              } 
          }
      ?>
      

      【讨论】:

        猜你喜欢
        • 2013-12-06
        • 1970-01-01
        • 2020-05-06
        • 1970-01-01
        • 2012-01-04
        • 1970-01-01
        • 1970-01-01
        • 2023-03-17
        • 1970-01-01
        相关资源
        最近更新 更多