Ajax函数返回总是错误

时间:2015-08-11 16:35:37

标签: javascript php jquery ajax

我需要将一些值传递给PHP文件,并从中返回一些值到原始脚本。我写了这段代码。

$(document).ready(function() {
    var value = $('#myId').val();
    $('.myClass').click(function() {
        var request = $.ajax({
            type:   'POST',
            url:    'getinfo.php',
            data:   {fileIs: value},
            success: function(data) {
                alert(data);
            },
            error: function() {
                alert("Error"); 
            }
        });

        });   
    });

getinfo.php就像:

mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("my_db") or die(mysql_error());

if(isset($_REQUEST['fileIs'])) {
    $file = mysql_real_escape_string(htmlentities($_POST['fileIs']));
    $value = mysql_query("SELECT * FROM files WHERE filename = '".$file."' ");
    while($row = mysql_fetch_array($value)) {
        echo $row['fileTitle']; 
    }       
}

当我执行脚本时,php AJAX函数始终返回带有写入“Error”的警报,该警告会自动消失。我该如何解决这个问题?我的目标是将“value”变量内容发送到PHP文件并从中获取响应,使数据库中的内容对应于“value”内容。

2 个答案:

答案 0 :(得分:0)

ajax函数无法判断返回的数据类型,因为您没有在php代码中设置http响应的标头。在while循环之前添加以下内容应该有所帮助:

header("Content-type: text/plain; charset=utf-8");

文档: http://php.net/manual/en/function.header.php

答案 1 :(得分:0)

getinfo.php

中尝试json_encode
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("my_db") or die(mysql_error());

if(isset($_REQUEST['fileIs'])) {
$file = mysql_real_escape_string(htmlentities($_POST['fileIs']));
$value = mysql_query("SELECT * FROM files WHERE filename = '".$file."' ");
while($row = mysql_fetch_array($value)) {
         $result = $row['fileTitle']; 
                        }       
}
echo json_encode($result);  or  //use one
return $result;                 //optional