2016-11-18 52 views
0

我在窗体中使用两个下拉菜单进行搜索。第二个下拉值将根据第一个下拉值的选择而改变。 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

+1

您的ajax调用没有'url'选项。 – Qsprec

+0

在您的ajax中,您需要添加url并传递id参数以获取相关值。 –

+0

^^^^ +'$(“#location”)。replaceWith(data);' – Satpal

回答

0
<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路径。

+0

仍然无法正常工作 –

+0

@Alfizamalek您正在传递两次数据。一个在'data'选项,另一个在'url'选项末尾。 – Qsprec

1

您可以检查您的回复,检查员看起来像下面的内容。在您的页面中,您只需检查您在回复中得到了什么。您只需打开检查员网络> xhr,然后从第一个下拉列表中选择值。在选择下拉菜单时,它将调用dynamic_select.php并显示给检查员,只需选择响应,您将能够在那里看到响应。

enter image description here

+0

我确实......网址看起来很好..... dynamic_select.php?id = 7811178 –

+0

dynamic_select.php的响应是什么?id = 7811178? –

+0

感谢@Alfiza的帮助...找到了解决方案。我没有包括类的自动加载文件。包括这一点,并确保正确的网址到php脚本。谢谢 –