Foros del Web » Programando para Internet » Javascript » Frameworks JS »

return en ajax

Estas en el tema de return en ajax en el foro de Frameworks JS en Foros del Web. Buenas! Por favor necesito si alguien me hace el favor de explicarme esto que no termino de entender. Necesito a través de ajax enviar información ...
  #1 (permalink)  
Antiguo 17/03/2012, 12:35
Avatar de alealvaro  
Fecha de Ingreso: junio-2004
Ubicación: BA - Argentina
Mensajes: 210
Antigüedad: 19 años, 10 meses
Puntos: 12
return en ajax

Buenas!

Por favor necesito si alguien me hace el favor de explicarme esto que no termino de entender.

Necesito a través de ajax enviar información a un php (por ej: acciones.php) para que ejecute un proceso, y de acuerdo al resultado que me devuelva proceder.

Hasta ahora entendí que para enviar datos a un archivo sin recargar la pag. se hace así:

Código Javascript:
Ver original
  1. $.ajax({
  2.   url: 'acciones.php',
  3.   type: 'POST',
  4.   async: true,
  5.   data: 'parametro1=valor1&parametro2=valor2',
  6.   success: procesaRespuesta,
  7.   error: muestraError
  8. });

Lo que pregunto es: acciones.php procede según los parametros, y necesito devuelva un valor, para luego con javascript proceder según ese valor. Como hago??? No logro entender esto. Puedo por ejemplo poner "return $valor;" en acciones.php y tomar ese valor en ese ajax? Como se hace?

Espero haberme explicado bien, desde ya muy agradecido!!!
__________________
Always learning a little more...
Videos y frases para dedicar
Quotes and Phrases for You
  #2 (permalink)  
Antiguo 17/03/2012, 12:49
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: return en ajax

¡buenas!
en cierta medida no estas invocando un proceso específico de php. recuerda que la técnica ajax simplemente trabaja por comunicación http. es decir, lo mismo que hace un navegador para comunicarse con el servidor, ya sea pedir o enviar datos. por tanto, lo que recibe ajax dependerá mucho del contenido devuelto por el servidor (independientemente de la utilidad) puede ser: una imagen, un video, texto, un ejecutable, etc. comúnmente la técnica ajax trabaja sobre texto de cualquier tipo: xml, json, html, plain, etc. entonces, lo que el servidor debe hacer es generar el contenido según con lo que tu quieras trabajar. fíjate que un return en php no tiene ningún efecto visual si no se imprime a la salida el resultado. o sea, echo funcion();, imprime el resultado y eso es parte de lo que recibe la petición http, sea iniciado por ajax o cualquier otra aplicación. lo importante es que tienes que generar el contenido, tal como lo harías normalmente con contenido dinámico en php.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 17/03/2012, 12:53
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 1 mes
Puntos: 62
Respuesta: return en ajax

lo que se hace en el PHP es sacar por pantalla con un echo lo que quieras y recogerlo en javascript:

http://api.jquery.com/jQuery.ajax/

Código Javascript:
Ver original
  1. $.ajax({
  2.   url: "test.html",
  3.   context: document.body,
  4.   success: function(data){
  5.     alert(""data);
  6.   }
  7. });
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #4 (permalink)  
Antiguo 17/03/2012, 14:12
Avatar de alealvaro  
Fecha de Ingreso: junio-2004
Ubicación: BA - Argentina
Mensajes: 210
Antigüedad: 19 años, 10 meses
Puntos: 12
Respuesta: return en ajax

Gracias por las respuestas!

Entonces.... a ver si entendí bien:

En acciones.php debo asegurarme que imprima contenido tal como lo devuelve al navegador, y es eso con lo que podría trabajar en ajax.

Pero entonces por ejemplo.... utilizando el ejemplo que dejó ZiTAL:

Código Javascript:
Ver original
  1. $.ajax({
  2.       url: "test.html",
  3.       context: document.body,
  4.       success: function(data){
  5.         alert(data);
  6.       }
  7.     });

Como debo hacer "echo" para que lo que reciba "data" sea un array de datos y poder utilizarlo como tal???? se puede???

Nuevamente muchas gracias!!
__________________
Always learning a little more...
Videos y frases para dedicar
Quotes and Phrases for You
  #5 (permalink)  
Antiguo 17/03/2012, 14:15
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 1 mes
Puntos: 62
Respuesta: return en ajax

lo que tendrías que hacer es un:

Código PHP:
Ver original
  1. echo json_encode($array);

y luego recorrerlo por javascript:

dataType: 'json':

Código Javascript:
Ver original
  1. $.ajax({
  2.           url: "test.html",
  3.           dataType: 'json',
  4.           success: function(data){
  5.             if(console)
  6.              console.log(data)
  7.           }
  8.         });

instalate firefox + firebug

y vete a la pestaña "CONSOLE" para ver las cosas que recives por ajax, suerte
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #6 (permalink)  
Antiguo 18/03/2012, 17:17
Avatar de alealvaro  
Fecha de Ingreso: junio-2004
Ubicación: BA - Argentina
Mensajes: 210
Antigüedad: 19 años, 10 meses
Puntos: 12
Respuesta: return en ajax

Perfecto! Gracias!!! con eso pude hacer funcionar como quería :D

Ahora quisiera hacer otra consulta que me surgió....

Utilizando ese método, con ajax envío datos a acciones.php y retorno valores, perfecto. PERO.... en ese acciones.php por ejemplo estoy dando inicio a una sesión PHP asignando valores $_SESSION['id'] por ejemplo. El problema es que estos no los veo desde la web. Como puedo hacer para que los reconozca el mismo ajax sin recargar la página??? se puede???

Nuevamente gracias!!!
__________________
Always learning a little more...
Videos y frases para dedicar
Quotes and Phrases for You
  #7 (permalink)  
Antiguo 19/03/2012, 02:23
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 1 mes
Puntos: 62
Respuesta: return en ajax

pues pasandole los valores de los mismos por ajax, no lo veo ninguna otra solución
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan

Etiquetas: ajax
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 16:48.