2

我正在尝试使用简单的代码来使用 jquery 获取城市名称,但结果我总是得到我命令处理的完整 php 代码,尽管我使用的这些代码与来自互联网的源代码不同

这是代码,

jQuery

$('input#name-submit').on('click', function() {
    var name = $('input#name').val();
    var namempty = '';
    if ($.trim(name) != '') {
        $.post('ajax/name.php', {
            nameSend: name
        }, function(data) {
            alert("Data Loaded: " + data);
        });
    } else {
        $('div#name-data').text(namempty);
    }
});​

php“name.php”

if (isset($_POST['nameSend'])=== true && empty($_POST['nameSend']) === false) {
    require '../db/connect.php';

    $query = mysql_query("SELECT city.cityId FROM city 
        WHERE city.cityName='"
        . mysql_real_escape_string(trim($_POST['nameSend']))."' "
    );

    echo (mysql_num_rows ($query)!== 0 ) 
        ? mysql_result($query,0,'location') : 'Name Not Found !!!';
}

我请求处理的 name.php 根本不处理它只返回结果,就像 name.php 的代码一样,我已经在使用另一个服务器,如 WAMP / XAMPP,但仍然没有得到我需要的结果

4

2 回答 2

0

只要我尝试过,它看起来是因为服务器软件错误,我已经使用

  • XAMPP 1.7.7 lite USB --> 工作正常
  • XAMPP 1.7.7 完整安装 --> 工作正常
  • XAMPP 1.8.1 lite USB --> 错误
  • XAMPP 1.8.1 完整安装 --> 错误
  • WAMP --> 错误

怀疑是最新的 apache 服务器与 jquery 插件或 php 不兼容

于 2012-11-17T14:56:46.233 回答
0

如果返回整个 php 代码,则您的 php 代码可能没有被执行。这可能是服务器配置问题。

另一方面,检查您的 mysql 语句返回的内容。它真的只返回城市名称吗?对我来说,您似乎正在那里获取一些城市ID。

为了通常清理 php 脚本的返回值,我建议使用 json。从您需要的数据库中获取数据,并将其存储在例如$object. 然后执行以下操作:

$object = json_encode($object)
echo $object;

这会将数据转换为格式良好的对象,可以在您的 jQuery 代码中使用,如下所示:

var json = $.parseJSON(data); //data being the callback parameter
alert(json.attr1);
alert(json.attr2); //all attributes that the object had in the php code are accessible through this

总结一下:调试您的查询,确保您的 php 服务器确实工作(当您直接在浏览器中打开 name.php 时会发生什么?)并通过 json 使用干净的回调。

编辑

要调试您的查询,请在脚本的开头说

echo "SELECT city.cityId FROM city WHERE city.cityName='".mysql_real_escape_string(trim($_POST['nameSend']))."'";
exit;

在浏览器中打开脚本。您将看到您的查询在屏幕上回显。复制查询并将其粘贴到您的数据库面板(可能是 phpmyadmin)并执行查询,看看它是否返回任何错误消息。

于 2012-11-17T00:59:25.040 回答