Wednesday, February 16, 2011

Display JSON Data with jQuery and Ajax


JSON (Java Script Object Notation) is a lightweight data passing format and human readable contains java structures. In this post I want to explain Creating JSON file with PHP and Display JSON data using jquery and Ajax. Using JSON we can interchange data between the browsers and the server. 

Display JSON Data with jQuey and Ajax


 Download Script     Live Demo 
XML Structure
<posts>

<title>9lessons | Programming Blog</title>
<url>http://9lessons.blogspot.com</url>

<title>jQuery and Ajax Demos</title>
<url>jquery-and-ajax-best-demos-part-3.html</url>

</posts>


JSON Structure 
Take a look at data.js file click here
{"posts":
[
{
"title":"9lessons | Programming Blog",
"url":"http://9lessons.blogspot.com"
},
{
"title":"jQuery and Ajax Demos Pard - 3",
"url":"jquery-and-ajax-best-demos-part-3.html"
},
]
}

Javascript Code
Loading data.js(json file) data using jQuery and Ajax. Take a look at live previewclick here
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/
libs/jquery/1.3.0/jquery.min.js
"></script>
<script type="text/javascript">
$(function()
{
$(document).ready(function()
{
$.getJSON("data.js",function(data)
{
$.each(data.posts, function(i,data)
{
var div_data =
"<div ><a href='"+data.url+"'>"+data.title+"</a></div>";
$(div_data).appendTo("#9lessonsLinks");
});
}
);
return false;
});
});
</script>

<div id="9lessonsLinks"></div>

Load Click
Load data while clicking just replace javascript code :$(document).ready(function() to $('.load').click(function() Live Preview Click Here
$(".load").click(function()
{
----
----
return false;
});
<div>
<input type="button" value=" Load " class="load" />
</div>
<div id="9lessonsLinks"></div>

Creating JSON file with PHP

Database Table Posts
CREATE TABLE Posts
{
id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(200),
url VARCHAR(200)
}

json_data.php
Contains simple PHP code.
<?php
include('config.php');
$sql=mysql_query("select * from Posts limit 20");
echo '{"posts": [';
while($row=mysql_fetch_array($sql))
{
$title=$row['title'];
$url=$row['url'];
echo '
{
"title":"'.$title.'",
"url":"'.$url.'"
},';
}
echo ']}';
?>

Loading PHP file

If you want to load PHP file replace javascript code$.getJSON("data.js",function(data)
to  
$.getJSON("json_data.php",function(data)

No comments:

Post a Comment