如何使用jQuery和PHP在自动完成搜索中获得城市

时间:2013-03-30 06:07:54

标签: php jquery

这是我的代码

<input type="text" name="country" id="country"/>
<input type="text" name="city" id="city"/>

这是我的jquery代码

$(document).ready(function() {

$('#country').keydown(function(){
    $(this).autocomplete({
        source: "get_country.php",
        minLength: 0,
        autoFocus: true,
        select: function(event, ui)
        {

        }
    });
});

var country = $("#country").val(); 

$('#city').keydown(function(){
    $(this).autocomplete({
        source: "get_city.php",
        //type:"GET",
        data : 'country='+country,
        minLength: 0,
        autoFocus: true,
        select: function(event, ui)
        {

        }
    });
});

});

这是我的代码get_city.php

include_once('config.php');

if ( !isset($_REQUEST['term']) )
exit;

$country = $_POST['country'];

$rs = mysql_query('select city from xyz_table where country="$country" and city like "'. mysql_real_escape_string($_REQUEST['term']) .'%" order by city asc limit 0,10');

$data = array();
if ( $rs && mysql_num_rows($rs) )
{
while( $row = mysql_fetch_array($rs, MYSQL_ASSOC) )
{
    $data[] = array(
        'value' => $row['city']
    );
}
}

echo json_encode($data);
flush();

此处显示以下问题注意:未定义的索引: G:\ xampp \ htdocs \ xyz \ get_city.php 中的国家/地区 6

我在德国,英国等自动完成搜索中获得了国家/地区

我希望获得国家/地区的自动完整搜索城市(例如德国/英国)

我该如何解决,请提出任何建议

1 个答案:

答案 0 :(得分:1)

更改此

$rs = mysql_query('select city from xyz_table where country="$country" and city like "'. mysql_real_escape_string($_REQUEST['term']) .'%" order by city asc limit 0,10');

$rs = mysql_query("select city from xyz_table where country='$country' and city like '". mysql_real_escape_string($_REQUEST['term']) ."%' order by city asc limit 0,10");

查看差异在您的查询中$country设置为字符串而非实际country

使用此

$_REQUEST['country']

使用此

发送数据
data : { country : country },

在通话中声明country

$('#city').keydown(function(){
    var country = $("#country").val();
    $(this).autocomplete({
        source: "get_city.php",
        ............