Javascript 使用php从JSON数组填充web数据
我已经玩JSON好几天了,我真的认为利用JSON交换数据是一种非常酷的方式。。。我正在使用jquery mobile构建一个应用程序,尝试在其中填充Json数据,到目前为止,我已经尝试过这种方法: 从名为movie-details.json的json文件中,我有以下内容:Javascript 使用php从JSON数组填充web数据,javascript,php,jquery,json,Javascript,Php,Jquery,Json,我已经玩JSON好几天了,我真的认为利用JSON交换数据是一种非常酷的方式。。。我正在使用jquery mobile构建一个应用程序,尝试在其中填充Json数据,到目前为止,我已经尝试过这种方法: 从名为movie-details.json的json文件中,我有以下内容: {"movies":[{"id":"1","name":"Dabangg2","picUrl":"http:\/\/www.naz8.com\/images\/Dabangg2.jpg"},{"id":"2","name":"
{"movies":[{"id":"1","name":"Dabangg2","picUrl":"http:\/\/www.naz8.com\/images\/Dabangg2.jpg"},{"id":"2","name":"Talassh","picUrl":"http:\/\/www.naz8.com\/images\/talassh.jpg"},{"id":"3","name":"JAB TAK HAI JAAN","picUrl":"http:\/\/www.naz8.com\/images\/jthj.jpg"},{"id":"4","name":"Khiladi 786","picUrl":"http:\/\/www.naz8.com\/images\/khiladi786.jpg"}]}
我可以通过以下方式获取数据,动态创建详细的listview:
<script type="text/javascript">
$.getJSON("movie-details.json", function(movies){
//Start off with an empty list every time to get the latest from server
$('#movieList').empty();
//add the movie items as list
$.each(movies, function(i, movie){
$('#movieList').append(generateMovieLink(movie));
});
//refresh the list view to show the latest changes
$('#movieList').listview('refresh');
});
//creates a movie link list item
function generateMovieLink(movie){
//debugger;
return '<li><a href="javascript:void(0)'
+ '" onclick="goToMovieDetailPage(\''
+ movie.name
+ '\',\''
+ movie.picUrl +'\')">'
+ movie.name
+ '</a></li>';
}
function goToMovieDetailPage(movieName, moviePicUrl){
//create the page html template
var moviePage = $("<div data-role='page' data-url=dummyUrl><div data-role='header' data-add-back-btn='true'><h1>"
+ movieName + "</h1></div><div data-role='content'><img border='0' src='"
+ moviePicUrl + "' width=204 height=288></img></div><div data-role='footer' data-position='fixed'><h4>"
+ movieName + "</h4></div></div>");
//append the new page to the page container
moviePage.appendTo( $.mobile.pageContainer );
//go to the newly created page
$.mobile.changePage( moviePage );
}
</script>
$.getJSON(“movie details.json”,函数(movies){
//每次从空列表开始,从服务器获取最新信息
$('#movieList').empty();
//将电影项目添加为列表
$。每个(电影,功能(i,电影){
$(“#movieList”).append(generateMovieLink(movie));
});
//刷新列表视图以显示最新的更改
$('#movieList')。列表视图('refresh');
});
//创建电影链接列表项
函数generateMovieLink(电影){
//调试器;
返回“”;
}
函数goToMovieDetailPage(movieName、moviePicUrl){
//创建页面html模板
var moviePage=$(“”
+movieName+“”
+movieName+“”);
//将新页面附加到页面容器
moviePage.appendTo($.mobile.pageContainer);
//转到新创建的页面
$.mobile.changePage(moviePage);
}
如何从php文件(例如movie-details.php)填充数据:
<?php
include('connection.php');
$var = array();
$sql = "SELECT * FROM movies";
$result = mysqli_query($con, $sql);
while($obj = mysqli_fetch_object($result)) {
$var[] = $obj;
}
echo '{"movies":'.json_encode($var).'}';
?>
我必须声明哪些变量才能从php文件中的objet获取json数据
例如:
//只是一个想法。。。我很困惑
var url=“…”
$.getJSON(url,函数(…){
$.each(movie.movies,function(i,…)
非常感谢您的帮助……您应该对整个shebang进行json编码
echo json_encode(array("movies" => $var));
至于jquery方法,
$.getJSON(“”,…)
将起作用。对我来说,最简单的方法就是从控制台以树的形式查看数据
$.getJSON(url, function(data){
console.log(data)
});
movies
是一个对象,数组是movies.movies
感谢Charlietfl的评论…但是我需要一个更清晰的例子,根据抓取过程应该声明的内容:$.each(movies.movies,function…
Hi charlietf,非常感谢你…是的…我刚刚修改了$.each(movies,function(…)基于您之前的回答,使用$.each(movies.movies,function(…),它工作得非常好…再次感谢您…Chris…也感谢您将上面的代码传递给我,尽管我已经有了echo“{”movies:“.json_encode($var)。”}”;它以同样的方式有效工作。。。