使用jquery ajax动态更改选择下拉值
我在窗体中使用两个下拉菜单进行搜索。第二个下拉值将根据第一个下拉值的选择而改变。 ajax请求,但不知何故从PHP脚本中不返回任何值。任何有关更改代码的建议?使用jquery ajax动态更改选择下拉值
的search.php
<select name="shop_name" id="shop_name">
<option value="blank">Select one</option>
<?php
$searchItem = new dbhandler();
$shopData = $searchItem->all_data('food_shops');
$i = 0;
foreach($shopData as $sd) {
?>
<option value="<?php echo $shopData[$i]->r_id; ?>"><?php echo $shopData[$i]->name; ?></option>
<?php $i++; } ?>
</select>
的script.js
<script type="text/javascript">
$(document).ready(function()
{
$("#shop_name").change(function()
{
var id=$(this).val();
var dataString = 'id=' + id;
$.ajax
({
type: "GET",
url: "dynamic_select.php",
data: dataString,
success: function(data)
{
$("#location").html(data);
}
});
});
});
dynamic_select.php
<?php
if($_GET['id']) {
$crs = $_GET['id'];
?>
<select name="location" id="location">
<?php
$searchItem = new dbhandler();
$searchItem->find('food_shops' , 'r_id', $crs);
$data = $searchItem->data();
$j = 0;
foreach($data as $d) {
?>
<option value="<?php echo $data[$j]->address; ?>"><?php echo $data[$j]->address; ?></option>
</select>
<?php $j++; } } ?>
的all_data()查询SELECT * FROM table_name
,找到()查询SELECT * FROM table_name WHERE r_id = $crs
<script type="text/javascript">
$(document).ready(function()
{
$("#shop_name").change(function()
{
var id=$(this).val();
var dataString = 'id='+ id;
$.ajax
({
type: "GET",
data: dataString,
cache: false,
url : "dynamic_select.php",
success: function(data)
{
$("#location").html(data);
}
});
});
});
</script>
与ID添加链接在你的AJAX脚本,如果需要改变dynamic_select.php路径。
仍然无法正常工作 –
@Alfizamalek您正在传递两次数据。一个在'data'选项,另一个在'url'选项末尾。 – Qsprec
您可以检查您的回复,检查员看起来像下面的内容。在您的页面中,您只需检查您在回复中得到了什么。您只需打开检查员网络> xhr,然后从第一个下拉列表中选择值。在选择下拉菜单时,它将调用dynamic_select.php并显示给检查员,只需选择响应,您将能够在那里看到响应。
我确实......网址看起来很好..... dynamic_select.php?id = 7811178 –
dynamic_select.php的响应是什么?id = 7811178? –
感谢@Alfiza的帮助...找到了解决方案。我没有包括类的自动加载文件。包括这一点,并确保正确的网址到php脚本。谢谢 –
您的ajax调用没有'url'选项。 – Qsprec
在您的ajax中,您需要添加url并传递id参数以获取相关值。 –
^^^^ +'$(“#location”)。replaceWith(data);' – Satpal