GetJSON不能使用PHP文件

时间:2016-06-15 12:50:02

标签: javascript php jquery json

我正在尝试将getJSON函数与回显一些JSON的PHP文件一起使用。如果我将PHP文件中预期的JSON保存为JSON文件,它的工作原理很完美,但是如果我使用PHP文件作为URL它就不起作用,因为它在第1行第1列解析PHP时失败。

PHP文件:

<?php

$jsondata = array();

if( isset($_GET['param']) ) {

if( $_GET['param'] == 'valor' ) {
    $jsondata['success'] = true;
    $jsondata['message'] = 'Correct.';
} else {
    $jsondata['success'] = false;
    $jsondata['message'] = 'Incorrect.';
}
header('Content-type: application/json; charset=utf-8');
echo json_encode($jsondata);
exit();
}

?>

这就是我在Javascript文件中使用的内容:

    $.getJSON('test.php', {format: "json"}, function(data) {
        window.alert("Loaded");
    }).fail( function(data, textStatus, error) {
        console.error("getJSON failed, status: " + textStatus + ", error: "+error)
    });

如果我从test.php更改为test.json,则可以正常工作。

编辑:我使用mysql而不是mysqli,服务器输出一个表然后我的JSON,这就是为什么我有JSON错误解析... 修复了从mysql到mysqli的变化。 谢谢大家。

1 个答案:

答案 0 :(得分:0)

试试这个:

if( $_GET['param'] == 'valor' ) {
    $row = array('success'=> true,'message'=>'Correct');
    array_push($jsondata,$row);
} else {
    $row = array('success'=> false,'message'=>'Incorrect');
    array_push($jsondata,$row);
}

回声保持不变:

echo json_encode($jsondata);

当我不得不使用JQuery和PHP与JQuery一起工作时,我编码是这样的。我希望它也适合你。