Foros del Web » Programando para Internet » Jquery »

Recibir y mostrar datos ajax jquery

Estas en el tema de Recibir y mostrar datos ajax jquery en el foro de Jquery en Foros del Web. Hola No se que estoy haciendo mal, pero está claro que algo falla. Envio una serie de datos por GET con ajax a un archivo ...
  #1 (permalink)  
Antiguo 17/06/2012, 05:24
 
Fecha de Ingreso: marzo-2009
Mensajes: 395
Antigüedad: 15 años, 1 mes
Puntos: 11
Recibir y mostrar datos ajax jquery

Hola

No se que estoy haciendo mal, pero está claro que algo falla.

Envio una serie de datos por GET con ajax a un archivo php. Éste los va añadiendo a una variable de sesión en forma de array y luego ajax los recoge, para mostrarlos por pantalla.

Os dejo el código de ajax:
Código:
$.ajax({
type:'GET',
url:'sesion2.php',
dataType: 'json',
data:{'producto':$('#texto').val(),'personas':$('#texto2').val(),'fecha':$('#texto3').val()},
success:function(data){
   $.each(data,function(i,j){
        $('body').append(data[i][j]);
   });
			
}
 
});
de sesion2.php
Código:
<?php
session_start();
$variable1 = $_GET['producto'];
$variable2 = $_GET['personas'];
$variable3 = $_GET['fecha'];
$_SESSION['carga'][] = array($variable1,$variable2,$variable3);
echo json_encode($_SESSION['carga']);
?>
El caso es que si en la parte de ajax, después de success cambio el $(body).prepend por un alert(), sí uqe me sale en el alert los datos, pero con el body prepend no sale. Tb he probado a meter un div y enviarlo al div, pero nada.


EL ERROR QUE ME DA CHROME ES EL SIGUIENTE:
Uncaught Error: NOT_FOUND_ERR: DOM Exception 8 -> He vuelto a bajar el jquery.1.7.js pero sigue dando fallo

Última edición por Gothgauss; 17/06/2012 a las 05:32
  #2 (permalink)  
Antiguo 17/06/2012, 05:40
 
Fecha de Ingreso: marzo-2009
Mensajes: 395
Antigüedad: 15 años, 1 mes
Puntos: 11
Respuesta: Recibir y mostrar datos ajax jquery

He conseguido que vaya, pero de manera chapucera, recorriendo el array con un each y los arrays de dentro con un for.

Código:
success:function(data){
$.each(data,function(i){
var j;
for(j=0;j<3;j++){
$('body').prepend(data[i][j]);
}
});
				
* * * * * * * * ** * * * * * * * * * * * * *
* * * * * * * * }
Lo cual me lleva a pensar que igual, metiendo un each dentro de otro each recorro el array interno. Pero no se si es así como tiene que ser o si esto es una chapuza a un código bien hecho
  #3 (permalink)  
Antiguo 17/06/2012, 21:58
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 10 meses
Puntos: 127
Respuesta: Recibir y mostrar datos ajax jquery

Si existe un array con varios arrays internos y quieres recorrerlos efectivamente la forma lógica es usando eachs encadenados unos dentro de otros. Si es bidireccional puede resolverlo sin necesidad de eachs ya que por cada recorrido del each padre a los registros hijos se les accede directamente mediante a[0], a[1], a[2], etc.
  #4 (permalink)  
Antiguo 18/06/2012, 10:09
 
Fecha de Ingreso: marzo-2009
Mensajes: 395
Antigüedad: 15 años, 1 mes
Puntos: 11
Respuesta: Recibir y mostrar datos ajax jquery

Efectivamente, así es como lo he hecho, ya que a la hora de poder hacer el carrito de compra, como el primer valor del array interno era el producto, el segundo el tipo y el tercero el peso, he recorrido el array principal, donde están contenidos y dentro de ese array he ido recorriendolo de manera "manual", es decir:

Código:
$.each(data,function(i){

$('#mostrar').append('producto'+data[i][0]+'tipo'+data[i][1]+'peso:'+data[i][2]);
})
En cuanto al array creado en sesion.php, hice un pequeño cambio, haciendo que el array contenedor fuera el id, para así poder añadir y quitar productos al gusto.

Lo hice de la forma:

Código:
$_SESSION['valores'][$id][]=array($valor1,$valor2,$valor3);
Creo que me ha quedado un cóidigo bastante simple y elegante. Muchas gracias nuevamente por la ayuda.

La verdad pensé que hacer un carrito de compra era bastante más complicado pero jquery y tú me habeís ayudado muchísimo

Etiquetas: ajax, js, php, recibir
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 20:41.