Javascript 使用php从JSON数组填充web数据

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":"

我已经玩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":"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)。”}”;它以同样的方式有效工作。。。