我试图在同一页面上首先填充第二个下拉列表,而不必调用任何外部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>
答案 0 :(得分:1)
一个常见的错误(也许不是你遇到过的,但是fwiw)是认为PHP代码可以某种方式运行AJAX。不对。呈现页面后,PHP无法运行。这就是javascript的用武之地,这就是为什么AJAX是在js / jQuery中启动的。
请注意,jQuery是您在页面上引用/加载的库。它不仅减少了30%的打字(仅这一事实就是使用它的理由),但它也是自动跨浏览器的。更重要的是,jQuery使AJAX 变得容易。
研究这个(工作)的例子。也许甚至可以在你的服务器上重现这个例子并稍微喋喋不休。将示例转换为您自己的解决方案。
答案 1 :(得分:0)
我做了很少的工作并且它有效,但令我困惑的是外部php脚本和第二个下拉列表之间的关系。