jQuery $ .getJson调用不返回值

时间:2014-04-19 15:37:17

标签: javascript php jquery ajax

我正在尝试使用jQuery ajax调用$ .getJson和jQuery模板插件来创建一个动态创建信息的站点。在我的index.html页面中,我有以下一些代码:

        $(document).ready(function() {
            var jsonData ="string";

            $.getJSON("load.php", function(data) {
                jsonData = data;
                console.log(jsonData);
            });

            console.log(JSON.stringify(jsonData));
            // Load template from our templates folder,
            // and populate the data from the post object.
            $("#test").loadTemplate('#template', jsonData);

        });

ajax调用执行load.php,它具有以下一些代码:     

//extract user ratings and respective movies
$_SESSION['username'] = $username;
$user_query = mysqli_query($link, "SELECT * FROM Client WHERE Username = '$username'");
$user_row = mysqli_fetch_array($user_query);
$user_id = $user_row['ID'];

$query = mysqli_query($link, "SELECT * FROM Ratings INNER JOIN Movie ON Ratings.Movie_ID = Movie.MovieID WHERE Client_ID = $user_id ORDER BY Rating DESC");
//adding movies to array list
$result =  array();
while ($row = mysqli_fetch_array($query))
{
    $movie = $row['MovieURL'];
    $rating = $row['Rating'];
    array_push($result, array('moviePicture' => $movie, 'movieRating' => $rating));
}
//converting array list to json and echoing it
echo json_encode($result);

我测试了$ result,它确实创建了一个包含所有数据的json对象。但是,当javascript在index.html页面中运行时,jsonData不会从' string'(当我检查控制台日志时)更改其值。我认为问题在于函数(数据),因为它没有记录我在那里的控制台命令。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

正确的代码:

$(document).ready(function() {
    var jsonData ="string";

    $.getJSON("load.php", function(data) {
        jsonData = data;
        $("#test").loadTemplate('#template', jsonData);
    });
});

您的代码存在问题,即在您收到loadTemplate的回复之前致电load.php