0

我有一个 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'];
}

任何人都知道为什么这不起作用?

谢谢 :)

4

2 回答 2

3

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

尝试

echo $row['city_name'];

代替

return $row['city_name'];
于 2013-08-28T10:18:54.230 回答
1

你的dataajax发送是错误的。试试这个。

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

还有echo你的 php 文件中的值。因为 return 不会给你 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'];
}
于 2013-08-28T10:17:17.580 回答