update - La mejor forma de mostrar datos a través de JSON usando jQuery
highcharts update data (4)
Estoy tratando de encontrar la mejor manera de mostrar los resultados en mi página a través de una llamada Ajax utilizando jQuery, ¿cree que la mejor manera es pasarlo como JSON o texto sin formato? He trabajado con llamadas ajax antes, pero no estoy seguro de cuál es el preferido sobre el otro y para la versión JSON cuál es la mejor manera de leer un archivo JSON generado por una página PHP para mostrar mis resultados.
Sé que incluiría un .each
para recorrerlo y mostrarlos todos.
¡Perfecto! Gracias Jay, a continuación está mi HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Facebook like ajax post - jQuery - ryancoughlin.com</title>
<link rel="stylesheet" href="../css/screen.css" type="text/css" media="screen, projection" />
<link rel="stylesheet" href="../css/print.css" type="text/css" media="print" />
<!--[if IE]><link rel="stylesheet" href="../css/ie.css" type="text/css" media="screen, projection"><![endif]-->
<link href="../css/highlight.css" rel="stylesheet" type="text/css" media="screen" />
<script src="js/jquery.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
/* <![CDATA[ */
$(document).ready(function(){
$.getJSON("readJSON.php",function(data){
$.each(data.post, function(i,post){
content += ''<p>'' + post.post_author + ''</p>'';
content += ''<p>'' + post.post_content + ''</p>'';
content += ''<p'' + post.date + ''</p>'';
content += ''<br/>'';
$(content).appendTo("#posts");
});
});
});
/* ]]> */
</script>
</head>
<body>
<div class="container">
<div class="span-24">
<h2>Check out the following posts:</h2>
<div id="posts">
</di>
</div>
</div>
</body>
</html>
Y mis salidas JSON:
{ posts: [{"id":"1","date_added":"0001-02-22 00:00:00","post_content":"This is a post","author":"Ryan Coughlin"}]}
Me sale este error cuando ejecuto mi código:
object is undefined
http://localhost:8888/rks/post/js/jquery.js
Line 19
Algo como esto:
$.getJSON("http://mywebsite.com/json/get.php?cid=15",
function(data){
$.each(data.products, function(i,product){
content = ''<p>'' + product.product_title + ''</p>'';
content += ''<p>'' + product.product_short_description + ''</p>'';
content += ''<img src="'' + product.product_thumbnail_src + ''"/>'';
content += ''<br/>'';
$(content).appendTo("#product_list");
});
});
Tomaría un objeto json hecho a partir de una matriz PHP devuelta con la clave de productos. p.ej:
Array(''products'' => Array(0 => Array(''product_title'' => ''Product 1'',
''product_short_description'' => ''Product 1 is a useful product'',
''product_thumbnail_src'' => ''/images/15/1.jpg''
)
1 => Array(''product_title'' => ''Product 2'',
''product_short_description'' => ''Product 2 is a not so useful product'',
''product_thumbnail_src'' => ''/images/15/2.jpg''
)
)
)
Para volver a cargar la lista simplemente lo haría:
$("#product_list").empty();
Y luego vuelve a llamar a getJSON con nuevos parámetros.
JQuery tiene un tipo de datos json incorporado para Ajax y convierte los datos en un objeto. PHP% también tiene la función incorporada json_encode que convierte una matriz en cadena json formateada. Ahorra una gran cantidad de análisis y esfuerzo de decodificación.
Puede crear un objeto jQuery a partir de un objeto JSON:
$.getJSON(url, data, function(json) {
$(json).each(function() {
/* YOUR CODE HERE */
});
});