This is for jQuery mobile application using version 1.0.1.
I am trying to get data from my getmovies.php file, which outputs JSON, for use in a jQuery function that adds data to an unordered list on my HTML page.
My HTML page displays correctly, but the getMoviesList () function does not add list items, so the content area remains empty.
I guess something is wrong with my $ .each () function. I like PHP more, but I try to learn more about jQuery and JSON to move data in jQuery Mobile applications.
getmovies.php outputs JSON as follows:
{"items":[ {"movieID":"65086","title":"The Woman in Black","poster":"\/kArMj2qsOnpxBCpSa3RQ0XemUiX.jpg"}, {"movieID":"76726","title":"Chronicle","poster":"\/853mMoSc5d6CH8uAV9Yq0iHfjor.jpg"} ]}
My Javascript looks like this:
var serviceURL = "http://mydomain.com/app3/services/"; var movies; $('#moviesPage').bind('pageinit', function(event) { getMoviesList(); }); function getMoviesList() { $.getJSON(serviceURL + 'getmovies.php', function(data) { $('#moviesList li').remove(); movies = data.items; $.each(movies, function(index, movie) { $('#moviesList').append('<li><a href="movie-details.html?movieID=' + movie.movieID + '">' + '<img src="posters/' + movie.poster + '"/>' + '<h4>' + movie.title + '</h4>' + '<p>Other details...</p>' + '</a></li>'); }); $('#movieList').listview('refresh'); }); }
My HTML is as follows:
<div id="moviesPage" data-role="page"> <div data-role="content"> <ul id="moviesList" data-role="listview" data-filter="true"></ul> </div> </div>
I am trying to modify the following sample application to meet my needs: http://coenraets.org/blog/2011/10/sample-application-with-jquery-mobile-and-phonegap/ .
Thanks for any help you can offer.