我正在尝试使用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'(当我检查控制台日志时)更改其值。我认为问题在于函数(数据),因为它没有记录我在那里的控制台命令。任何帮助将不胜感激。
答案 0 :(得分:0)
正确的代码:
$(document).ready(function() {
var jsonData ="string";
$.getJSON("load.php", function(data) {
jsonData = data;
$("#test").loadTemplate('#template', jsonData);
});
});
您的代码存在问题,即在您收到loadTemplate
的回复之前致电load.php