Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Json y Jquery los objetos no se muestran

Estas en el tema de Json y Jquery los objetos no se muestran en el foro de Jquery en Foros del Web. Hola, Bueno yo soy nuevo en jquery y json, estuve tratando de obtener un resultado via json y jquery y no logor obtener los resultados ...
  #1 (permalink)  
Antiguo 27/07/2014, 20:38
 
Fecha de Ingreso: septiembre-2010
Mensajes: 350
Antigüedad: 14 años, 1 mes
Puntos: 9
Exclamación Json y Jquery los objetos no se muestran

Hola,

Bueno yo soy nuevo en jquery y json, estuve tratando de obtener un resultado via json y jquery y no logor obtener los resultados estuve buscando en google ejemplos pero no logro encontrar algo que me funcione,

Yo tengo lo siguiente que modifique de un codigo que encontre y funciona pero muestra el resultado en un listbox.

Código PHP:
 <script type="text/javascript">
    $(
document).ready(function () {
        
        
        
        
// prepare the data
        
var source =
        {
            
datatype"json",
            
datafields: [
             { 
name'CUPO' },
             { 
name'TOTAL_USERS' }
            ],
            
url'datos.php',
            
asyncfalse
        
};

        
 
     
    var 
dataAdapter = new $.jqx.dataAdapter(source);

        $(
"#dropdownlist").jqxDropDownList(
        {
            
sourcedataAdapter,
            
            
width250,
            
height25,
            
selectedIndex0,
            
displayMember'TOTAL_USERS',
            
valueMember'CUPO'
        
});      

    });
    
</script> 
Esto si funciona pero con un tipo listbox, si lo trato de hacer para un div o textbox no funciona>

Código PHP:
$("#dropdownlist").text(
        {
            
sourcedataAdapter,
        
            
displayMember'TOTAL_USERS',
            
valueMember'CUPO'
        
}); 
Si deseo ver los datos que traigo de esta manera tampoc funciona solo me muestra como resultado TOTAL_USERS y CUPO textualmente mas no el valor.

Código PHP:
 
 
for (var i in source.datafields) {
       
alert(source.datafields[i].name);
    } 
Como hago para poder obtener esos valores? de la primer forma funciona pero en un listbox. Que esta mal y como es que puedo obtener esos valores realmente no entiendo mucho :S me podrian orientar ?

Gracias!
  #2 (permalink)  
Antiguo 28/07/2014, 10:44
Avatar de fhederico  
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 15 años, 3 meses
Puntos: 23
Respuesta: Json y Jquery los objetos no se muestran

Hola,

Que retorna tu datos.php? ya que segun esto es lo que obtienes, me explico

Tengo un de ejemplo datos.php que no recibe nada, solo retorna un array definido


Código PHP:
Ver original
  1. $retorno = array();
  2. $retorno["cod"] = 1; //Clave y valor
  3. $retorno["mens"] = "hola"; //Clave y valor
  4.  
  5. //Json retorna tu Array en un codigo JSON valido
  6. return json_encode($retorno);

En mi pagina HTML con Jquery

Código Javascript:
Ver original
  1. $.ajax(
  2. {
  3.         //Le indicamos que estamos haciendo un JSON
  4.      dataType: "json",
  5.      contentType: "application/json",
  6.         //Que los parametros se los pasaremos por GET
  7.     type: "GET",
  8.        //Ruta donde esta tu archivo que recibira todo esto
  9.     url: "datos.php",
  10.         //Parametros que le pasamos,
  11.        //Seria "clave" : "valor", asi al otro lado recuperamos "codigo"
  12.     data: { "codigo" : cod},
  13.        //Caso exitoso, que funciono y retorno datos
  14.     success: function(data, textStatus, XMLHttpRequest)
  15.     {
  16.                //Recorremos "data" que es donde se retornaron los datos
  17.         $.each(data, function(key, val)
  18.         {
  19.                        //Aqui viene toda la logica de que harias con estos datos
  20.                        alert("la clave es: "+key+" y el valor es: "+val);
  21.         });        
  22.     },
  23.        //Ocurrio algun problema
  24.     error: function() {
  25.                alert("Noooo... me cai y no funciono bien");
  26.     }
  27. });


Obviamente en donde va tu logica puedes por ejemplo hacer que el valor lo muestre en un div
Código HTML:
Ver original
  1. $("#prueba").html(val);

Aqui asumimos que existe un DIV con un ID llamado prueba y reemplazara todo el contenido HTML de dicho div con "val", que es el valor que viene en el each

Código HTML:
Ver original
  1. <div id="prueba">contenido antes de mi JSON</div>

Una ultima cosa, como te daras cuenta al ejecutar te mostrara un alert asi

la clave es: cod y el valor es: 1
la clave es: mens y el valor es: hola


Saludos
__________________
Si encuentras que tu pregunta fue respondida, se agradeceria enormemente que la marcaras como solucionada... si... es el boton verde gigante que esta al final de la pagina :)

Última edición por fhederico; 28/07/2014 a las 10:47 Razón: Agrego info
  #3 (permalink)  
Antiguo 28/07/2014, 17:38
 
Fecha de Ingreso: septiembre-2010
Mensajes: 350
Antigüedad: 14 años, 1 mes
Puntos: 9
Exclamación Respuesta: Json y Jquery los objetos no se muestran

fhederico Muchas gracias, la explicación ahora es muy clara, para no errar cree todo de nuvo e ingrese los datos que me pasaste de php para probar con ellos, pegue el codigo que me pasaste pero no veo el mensaje de alerta, no entiendo que podria estar mal :S el codigo html tal cual es:

Código PHP:
<!doctype html>
<
html lang="en">
<
head>
<
meta charset="utf-8">
<
title>jQuery.getJSON demo</title>
 <
script type="text/javascript" src="clase_files/jquery-1.js"></script>
    <script type="text/javascript" src="clase_files/jqxcore.js"></script>
    <script type="text/javascript" src="clase_files/jqxbuttons.js"></script>
    <script type="text/javascript" src="clase_files/jqxscrollbar.js"></script>
    <script type="text/javascript" src="clase_files/jqxdata.js"></script>
    <script type="text/javascript" src="clase_files/jqxlistbox.js"></script>
    <script type="text/javascript" src="clase_files/jqxdropdownlist.js"></script>    
    <script type="text/javascript" src="clase_files/demos.js"></script><link rel="stylesheet" href="clase_files/jqx_002.css" media="screen">
<style>
img {
height: 100px;
float: left;
}
</style>

</body>
<script>

    $.ajax(
    {
            //Le indicamos que estamos haciendo un JSON
         dataType: "json",
         contentType: "application/json",
            //Que los parametros se los pasaremos por GET
        type: "GET",
           //Ruta donde esta tu archivo que recibira todo esto
        url: "data.php",
            //Parametros que le pasamos,
           //Seria "clave" : "valor", asi al otro lado recuperamos "codigo"
        data: { "codigo" : cod},
           //Caso exitoso, que funciono y retorno datos
        success: function(data, textStatus, XMLHttpRequest)
        {
                   //Recorremos "data" que es donde se retornaron los datos
            $.each(data, function(key, val)
            {
                           //Aqui viene toda la logica de que harias con estos datos
                           alert("la clave es: "+key+" y el valor es: "+val);
            });        
        },
           //Ocurrio algun problema
        error: function() {
                   alert("Noooo... me cai y no funciono bien");
        }
    });

</script>
</html> 
El codigo php de data.php

Código PHP:
$retorno = array();
$retorno["cod"] = 1//Clave y valor
$retorno["mens"] = "hola"//Clave y valor
 
//Json retorna tu Array en un codigo JSON valido
return json_encode($retorno); 
Pero no aparece nada :S me falta alguno otra libreria ahi? o que podria estar dandome tanta lata?
  #4 (permalink)  
Antiguo 28/07/2014, 23:36
Avatar de fhederico  
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 15 años, 3 meses
Puntos: 23
Respuesta: Json y Jquery los objetos no se muestran

Hola,

Te respondo a la rapida porque no estoy en el PC donde puedo probar tu codigo. Pero a simple vista, primero tu pagina HTML no cierra la etiqueta "head" y lo unico que requiere este ejemplo es tener la libreria de JQuery anexada o incluida, idealmente la ultima version, creo que es la 2.1, asi que podrias quitar las otras mientras haces la prueba por si generan algun conflicto.

Tambien no abres tu etiqueta body, solo la cierras, fijate bien en la estructura basica del HTML lo minimo que requiere es esto

Código HTML:
Ver original
  1.    <head>
  2.       <title>prueba</title>
  3.    </head>
  4.    <body>
  5.    </body>
  6. </html>
  7.  
  8. <script type="text/javascript" src="clase_files/jquery-1.js"></script>
  9. codigo JS

Los script pueden ir en el head o al final, eso cada cual puede darte su opinion.

Una vez corregidos los problemas de HTML, fijate con el depurador Firebug en su pestaña "Consola" si se hizo algun llamado o peticion por Ajax.

Si no se ha realizado ninguna peticion fijate en que este bien la ruta de tu libreria Jquery.

Si te hizo el llamado o la consulta por Ajax y te muestra el mensaje de error, puede ser que el archivo de ejemplo que te deje tenga problemas, puedes darle un alert y que te muestre el error por ejemplo
Código Javascript:
Ver original
  1. error: function(data, textStatus, XMLHttpRequest)
  2. {
  3.    alert(data);
  4. }


Esto es lo que puedo decirte asi rapido, mas tarde probare tu codigo si es que aun tienes problemas.

Saludos
__________________
Si encuentras que tu pregunta fue respondida, se agradeceria enormemente que la marcaras como solucionada... si... es el boton verde gigante que esta al final de la pagina :)

Última edición por fhederico; 28/07/2014 a las 23:41
  #5 (permalink)  
Antiguo 31/07/2014, 19:51
 
Fecha de Ingreso: septiembre-2010
Mensajes: 350
Antigüedad: 14 años, 1 mes
Puntos: 9
Exclamación Respuesta: Json y Jquery los objetos no se muestran

Hola,

Gracias por tu pronta respuesta!, entiendo los errores anteriores ya que con la desesperación ya solo copias y pegas y haces y deshaces xD, estuve tratando de hacer correr ese codigo pero en verdad no sé que tiene que no funciona :S pero bueno les comparto el que utilice:

El único problema es que muestra solo un resultado de un array y no uno con varios arrays dentro de un array: [["35","37"],["Marta","Juan"],["Mexico","Monterrey"]]

Código PHP:

<html>
    <
head>
       <
title>jQuery Test</title>
    <
script type="text/javascript" src="jquery.js"></script>
     <script type="text/javascript">
     $(document).ready(function() {

            $("#submit").click(function(){

            $.ajax({
            url: "data.php",
            type: "POST",
            data: {
                amount: $("#amount").val(),
                firstName: $("#firstName").val(),
                lastName: $("#lastName").val(),
                email: $("#email").val()
            },
            dataType: "JSON",
            success: function (jsonStr) {
                //$("#result").text(JSON.stringify(jsonStr));
                alert(jsonStr.lastName);
            }
        });

    }); 

    });
    </script>
    </head>
    <body>
    <div id="result"></div>
        <form name="contact" id="contact" method="post">
        <input type="button" value="Get It!" name="submit" id="submit"/>
        </form>

    </body>
</html> 
Código PHP:
<?php

    $amount      
20;
    
$firstName   "juan";
    
$lastName    "perez";
    
$email       "correo";
    if(isset(
$amount)){
        
$data = array(
            
"amount"     => $amount,
            
"firstName"  => $firstName,
            
"lastName"   => $lastName,
            
"email"      => $email
        
);
        echo 
json_encode($data);
    }


?>

Etiquetas: json, mysql, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:17.