在同一页面上填充第二个下拉列表

时间:2016-06-20 17:56:24

标签: javascript php html

我试图在同一页面上首先填充第二个下拉列表,而不必调用任何外部PHP脚本。我一直在测试ajax,但它无法工作,它必须在外部调用另一个PHP脚本。

我有状态,所以当点击一个状态时,它会从db中填充第二个下拉列表中包含该状态的位置,第一个下拉列表正常工作但第二个下拉列表不起作用。这是我的代码,一直在尝试ajax没什么用。

我希望在不调用任何外部PHP脚本的情况下在同一页面上回显db中的值。如何将第一个下拉值传递给下面的第二个下拉PHP代码以查询数据库?不在外部调用另一个PHP文件,都在同一页面上?

       //first dropdown//
<select name="state" class="select" >
     <option selected>State</option>
        <?php 
  $u =  "SELECT * FROM state_id";
  $sql = mysqli_query($con, $u);
  while ( $row = mysqli_fetch_assoc($sql)) 
  {
 echo '<option>'.$row['name'].'</option>';
 }
 ?>

        </select>
        </div>
      </div>
          <div class="col-md-2">
        <div class="aa-single-advance-search">
           <!-- second dropdown on the same page -->

              <select name="locality" class="select2">
              <option selected>Location</option>
                                 <?php 
                                //local area is the table i am getting localities based on state value in the first select menu//
      $u =  "SELECT name FROM local_area WHERE state_id='$id'";
        $sql = mysqli_query($con, $u);
         while ( $row = mysqli_fetch_assoc($sql)) 
      {
         echo '<option>'.$row['name'].'</option>';
     }
      ?>
              </select>

2 个答案:

答案 0 :(得分:1)

一个常见的错误(也许不是你遇到过的,但是fwiw)是认为PHP代码可以某种方式运行AJAX。不对。呈现页面后,PHP无法运行。这就是javascript的用武之地,这就是为什么AJAX是在js / jQuery中启动的。

请注意,jQuery是您在页面上引用/加载的库。它不仅减少了30%的打字(仅这一事实就是使用它的理由),但它也是自动跨浏览器的。更重要的是,jQuery使AJAX 变得容易。

研究这个(工作)的例子。也许甚至可以在你的服务器上重现这个例子并稍微喋喋不休。将示例转换为您自己的解决方案。

Populate dropdown B based on selection in dropdown A

答案 1 :(得分:0)

我做了很少的工作并且它有效,但令我困惑的是外部php脚本和第二个下拉列表之间的关系。