Jquery无法处理返回值是php代码

时间:2012-11-17 00:27:18

标签: php jquery html ajax

我正在尝试使用简单的代码来使用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这样的其他服务器 仍然没有得到我需要的结果

2 个答案:

答案 0 :(得分:0)

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

另一方面,检查你的mysql语句返回的内容。它真的只返回城市名称吗?对我而言,似乎你正在那里取得一些城市。

一般来说,为了清理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)并执行查询,看它是否返回任何错误消息。

答案 1 :(得分: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