基于下拉列表的自动填充功能

时间:2015-02-02 05:19:34

标签: php jquery

我正在尝试根据下拉选择值执行自动完成功能。

我的index.php页面:

     <div>Select City</div>
     <select id="city">
     <option value="select">Select</option>
     <option value="Chennai">Chennai</option>
     <option value="Madurai">Madurai</option>
     <option value="Salem">Salem</option>
     <option value="Trichy">Trichy</option>
     </select><br />
     <input type="text" id="search" />
     <script>
      $(document).ready(function(){
      $('#search').autocomplete({
      minLength: 1,
      source: function(query, process) {
        var res = $('#city').val();
        $.ajax({
            url: 'autocomplete.php',
            type: 'GET',
            data: "src="+res + "&value=" + $('#search').val(),
            dataType: 'JSON',
            async: true,
            success: function(data) {
                process(data);
            }
        });
    }
});
});
</script>

我的autocomplete.php页面:

 <?php
 if (isset($_GET['src'])) {
 $city = $_GET['src'];
 echo $city;
 }
 ?>
 <?php
 $loc = $_GET['value'];
 echo $loc;
 $conn=mysql_connect('localhost', 'root', '');
 if (!$conn)
 {
 die('Could not connect: ' . mysql_error());
 }
 if(!mysql_select_db("details"))
 {
 die('Could not connect database: ' . mysql_error());
 }
 $sql="SELECT localty FROM localty where localty like '%".$loc."%' and city='$city'";
 echo $sql;
 $result = mysql_query($sql);

 if($result)
 {
 while($row=mysql_fetch_array($result))
 {
    echo $row['localty']."\n";
 }
 }
 ?>

根据城市选择下拉值,在搜索文本框中,当输入第一个字母时,应显示localty。但我没有在autocomplete.php页面中获取值。

请提出任何建议。

1 个答案:

答案 0 :(得分:0)

试试这个......

 <script>
   $(document).ready(function(){          
   $('#city').change(function(){                  
  $('#search').autocomplete({
  minLength: 1,
  source: function(query, process) {
    var res = $('#city').val();
    $.ajax({
        url: 'autocomplete.php',
        type: 'GET',
        data: "src="+res + "&value=" + $('#search').val(),
        dataType: 'JSON',
        async: true,
        success: function(data) {
            process(data);
        }
    });
  });
}
}); 
});
 </script>