【发布时间】:2021-03-30 11:59:09
【问题描述】:
我正在尝试使用 php 和 ajax 创建一个依赖下拉列表。我期待的是选择汽车的“制作”,相关的汽车模型应该自动加载“模型”下拉列表。我已经完成了汽车“制造”的预加载。但“模型”下拉菜单仍然为空。我使用了一个故事并在 sql 语句中使用(选择模型,其中 make= 选择制作)。这是我的代码
php
<form method="GET">
<div class="form-group">
<select class="form-control" name="make" id="make">
<option value="" disabled selected>--Select Make--</option>
<?php
$stmt=$pdo->query("SELECT DISTINCT make FROM cars WHERE cartype='general' ");
while($row=$stmt->fetch(PDO::FETCH_ASSOC)){
?>
<option value="<?= $row['make']; ?>"> <?= $row['make']; ?></option>
<?php } ?>
</select>
</div>
<div class="form-group">
<select class="form-control" name="model" id="model">
<option value="" disabled selected>--Select Model--</option>
</select>
</div>
.......
....
.....
脚本
<script type="text/javascript">
$(document).ready( function () {
// alert("Hello");
$(#make).change(function(){
var make = $(this).val();
$.ajax({
url:"filter_action.php",
method:"POST",
data:{Make:make},
success: function(data){
$("#model").html(data);
});
});
});
</script>
filter_action.php
<?php
include('db_config2.php');
$output='';
$stmt=$pdo->query("SELECT DISTINCT model FROM cars WHERE cartype='general' AND make= '".$_POST['Make']."'");
$output .='<option value="" disabled selected>--Select Model--</option>';
while($row=$stmt->fetch(PDO::FETCH_ASSOC)){
$output .='<option value="'.$row["model"].'">'.$row["model"].'</option>' ;
}
echo $output;
?>
【问题讨论】:
-
这
$(#make)应该用引号括起来,即 :$("#make")。另外,检查浏览器控制台是否还有其他错误? -
您通过直接嵌入用户提供的输入数据使您的 SQL 容易受到注入攻击
-
@Swati 谢谢。是的,我已将其更改为 $("#make") 但结果仍然相同
-
你得到了什么结果??
-
@KUMAR 不,“make”下拉菜单正在工作,但“model”下拉菜单仍然为空