Ajax自动填写城市

时间:2013-08-28 10:15:15

标签: php jquery ajax

我有一个HTML表单,当我填写一个邮政编码时,我希望城市字段自动更新到属于该邮政编码的城市。

这是我的表格:

<form method="post" action="">
    <input type="text" name="zipcode" id="zipcode">
    <input type="text" name="city" id="city">
</form>

这是我的ajax:

$('#zipcode').keyup(function () {
    var el = $(this);
    if (el.val().length == 4) {
        $.ajax({
            url: 'get_city.php',
            cache: false,
            type: "GET",
            data: "zipcode=" + el.val(),
            success: function (data) {
                $('#city').val(data);
            }
        })
    }
});

这是PHP

$db = mysql_connect('localhost', 'root', '');
mysql_select_db('testbox_new', $db);

$sql = 'select * from cities where zipcode = "'.$_GET['zipcode'].'"';
$result = mysql_query($sql);
while ($row = mysql_fetch_array($sql)) {
    return $row['city_name'];
}

有谁知道为什么这不起作用?

Thx:)

2 个答案:

答案 0 :(得分:3)

您将返回找到的值,而不是回显它。

尝试

echo $row['city_name'];

而不是

return $row['city_name'];

答案 1 :(得分:1)

发送你的ajax的data是错误的。试试这个。

 $.ajax({
     url: 'get_city.php',
     cache: false,
     type: "GET",
     data: {"zipcode": el.val()},
     success: function(data) {
         $('#city').val(data);
     } 
 });

同样echo你的php文件中的值。因为返回不会给你ajax的响应

$db = mysql_connect('localhost', 'root', '');
mysql_select_db('testbox_new', $db);
$sql = 'select * from cities where zipcode = "'.$_GET['zipcode'].'"';
$result = mysql_query($sql);
while ($row = mysql_fetch_array($sql)) {
    echo $row['city_name'];
}