Temas > Programacion > Java script - Java > JSON en jQuery
Julio

$.getJSON
La función getJSON hace una petición de datos al servidor 
considerando que retorna la información con notación JSON. 
La sintaxis de esta función es:
$.getJSON([nombre de la página], [parámetros], [función que recibe 
los datos])
La función getJSON procede a generar un objeto en JavaScript y 
nosotros en la función lo procesamos.
       1.El usuario hace click en un link para obtener datos.
       2.JavaScript llama a un fichero PHP enviándole algunos
parámetros.
       3.El fichero PHP recibe los parámetros y devuelve los datos.
       4.JavaScript recibe los datos y los muestra como HTML.
pagina1.html
<?php //esto no va
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xml:lang="en" lang="en" xmlns="http://www.w3.org/
1999/xhtml">
 <head>
 <title>Table row hovers with jQuery example - adeepersilence.be</title>
 <meta http-equiv="content-type" content="text/html; 
charset=iso-8859-15" />
 <meta http-equiv="content-language" content="en" />
 <style type="text/css">
               body {
                       margin: 50px 0 0 100px;
               }
               p {
                       font-size: 0.8em;
                       padding: 20px 0 0 0;
               }
 </style>
 <script type="text/javascript" src="../jquery.js"></script>
 <script type="text/javascript" src="funciones.js"></script>
 </head>
 <body>
 <ul id="mylist">
        <li><a rel="3" href="#dave">Dave`s email</a></li>
        <li><a rel="4" href="#erik">Erik`s email</a></li>
 </ul>
 <p id="info">&nbsp;</p>
 </body>
 </html>
?>//esto no va
funciones.js
<?php //esto no va
 $(`document`).ready(function(){
 // an anchor element in the list `mylist` gets clicked
               $(`#mylist a`).click(function (){
 // the ID of the record we need to retrieve is stored in the rel element,

so we fetch it first
               var id = $(this).attr(`rel`);
 // do the JSON call to getinfo.php, send the ID parameter with it and 
allback to parseEmail
               $.getJSON(`getinfo.php`, {`id` : id}, parseInfo);
               });
        });
 // this function parses the fetched data into the `info` paragraph
        function parseInfo(data){
 // the data parameter is an object, while name and email are the keys 
from the PHP array
 // you can also use the `text` function instead of html. The difference 
is that `text`
 // displays raw text, even if it contains other HTML elements.
               $(`#info`).html(data.name +`, `+ data.email);
        }
?>//esto no va
getinfo.php

 <?php
 // see if we have a GET variable `id` set
 $id = (isset($_GET[`id`]) && !empty($_GET[`id`])) ? $_GET[`id`] : 0;
 // pretend this is a query to a database to fetch the wanted users.
 $users[3] = array(`name` => `Dave`, `email` => `dave@adeepersilence.be`);
 $users[4] = array(`name` => `Erik`, `email` => `erik@bauffman.be`);
 // only if an ID was given and the key exists in the array, we continue
 if(!empty($id) && key_exists($id, $users))
 {
        // echo (not return) the wanted record from the users array
        echo json_encode($users[$id]);
 }
 ?>

Cuando se hace click sobre cualquiera de los enlaces procedemos 
a realizar la petición asincrónica utilizando la función getJSON:
<?php //esto no va
$(`#mylist a`).click(function ()
{
        var id = $(this).attr(`rel`);
        $.getJSON(`getinfo.php`, {`id` : id}, parseInfo);
});
?>//esto no va
Como hemos llamado a la función getJSON la misma nos retorna 
un objeto JavaScript para procesarlo:
<?php //esto no va
function parseInfo(data)
{
        $(`#info`).html(data.name +`, `+ data.email);
}
?>//esto no va
Donde `data` es el objeto que devuelve getJSON.
Tengamos en cuenta que el programa en el servidor debe 
retornar un archivo con notación JSON:
<?php
$id = (isset($_GET[`id`]) && !empty($_GET[`id`])) ? $_GET[`id`] : 0;
$users[3] = array(`name` => `Dave`, `email` => `dave@adeepersilence.be`);
$users[4] = array(`name` => `Erik`, `email` => `erik@bauffman.be`);
if(!empty($id) && key_exists($id, $users))
{
        echo json_encode($users[$id]);
}
?>
[1] Note that you need PHP 5.2 or higher to use json_encode()
[2] The $.getJSON() method does an HTTP GET and not POST. You need to use
$.post()
$.post(url, dataToBeSent, function(data, textStatus) {
  //data contains the JSON object
  //textStatus contains the status: success, error, etc
}, "json");
In that call, dataToBeSent could be anything you want, although if are
sending the
contents of a an html form, you can use the serialize method to create the
data for
the POST from your form.
var dataToBeSent = $("form").serialize();













¿Has olviado tu contraseña?

Pulsa aquí para registrate




Google






LunMarMieJueVieSabDom
    123
45678910
11121314151617
181920 21222324
252627282930 

Jueves 21 de Noviembre 2024
Semana 47

..............................................................................................................................................................................................................................................
(Contacto)..
Esta web utiliza cookies para obtener datos estadísticos de la navegación de sus usuarios. Política de privacidad y Aviso legal