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

Devolver resultado de PHP a Ajax

Estas en el tema de Devolver resultado de PHP a Ajax en el foro de Frameworks JS en Foros del Web. Hola a todos, el problema que tengo es el que aparece en el titulo: yo tengo dos paginas, una con un documento javascript y otro ...
  #1 (permalink)  
Antiguo 21/08/2011, 16:07
Avatar de dmm84  
Fecha de Ingreso: marzo-2011
Mensajes: 164
Antigüedad: 13 años
Puntos: 13
Devolver resultado de PHP a Ajax

Hola a todos, el problema que tengo es el que aparece en el titulo:

yo tengo dos paginas, una con un documento javascript y otro con un documento php en el que tengo un codigo para una consulta a mysql. Al final del codigo php hay un return con el resultado de la consulta a la base de datos. He visto que hay metodos con Xajax o cosas parecidas con lo que puedo simular una conexion entre javascript y php pero no he logrado nada. ¿Alguien me puede guiar?
__________________
Mas vale un codigo que mil palabras
  #2 (permalink)  
Antiguo 22/08/2011, 12:10
 
Fecha de Ingreso: noviembre-2008
Mensajes: 100
Antigüedad: 15 años, 4 meses
Puntos: 4
Respuesta: Devolver resultado de PHP a Ajax

Lo que quieres es mandar el resultado de la consulta PHP hacia tu archivo ajax???? o que quieres decir con metodos ?
  #3 (permalink)  
Antiguo 22/08/2011, 12:55
Avatar de dmm84  
Fecha de Ingreso: marzo-2011
Mensajes: 164
Antigüedad: 13 años
Puntos: 13
Respuesta: Devolver resultado de PHP a Ajax

con metedos me referia a formas. Sí, lo que has dicho es lo que quiero hacer. Yo pienso que sería algo como si Ajax envía al servidor una petición, se procesa el codigo PHP, y el servidor le devuelve la respuesta a Ajax
__________________
Mas vale un codigo que mil palabras
  #4 (permalink)  
Antiguo 22/08/2011, 13:45
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 6 meses
Puntos: 45
Respuesta: Devolver resultado de PHP a Ajax

no entiendo muy bn, pero si quieres obtener lo que retornaste de tu base de datos de tu archivo PHP, entonces en el documento que tienes el javaScript, guardas en una variable el valor de la propiedad responsetext de tu objeto "Ajax" todo esto despues de haber llamado el metodo onreadystatechange del mismo objeto..

Código Javascript:
Ver original
  1. var valor = MyAjax.responseText;
ahora en valor tienes lo que retornaste
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #5 (permalink)  
Antiguo 22/08/2011, 17:28
Avatar de dmm84  
Fecha de Ingreso: marzo-2011
Mensajes: 164
Antigüedad: 13 años
Puntos: 13
Respuesta: Devolver resultado de PHP a Ajax

malakian, has dado en el clavo, he buscado un poco en google y he encontrado lo que queria (eso creo), ya se mas o menos por donde tengo que buscar, si sigo sin tener ni idea ya volvere a comentar
__________________
Mas vale un codigo que mil palabras
  #6 (permalink)  
Antiguo 24/08/2011, 06:59
Avatar de dmm84  
Fecha de Ingreso: marzo-2011
Mensajes: 164
Antigüedad: 13 años
Puntos: 13
Respuesta: Devolver resultado de PHP a Ajax

hola de nuevo,

he conseguido hacer la conexion de Ajax a PHP, es decir, que he conseguido enviar variables de Ajax a PHP, pero no consigo hacerlo al reves, enviar variables de PHP a Ajax.
Lo de enviar de Ajax a PHP lo he conseguido como dijo malakian.
__________________
Mas vale un codigo que mil palabras
  #7 (permalink)  
Antiguo 24/08/2011, 11:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Devolver resultado de PHP a Ajax

Pues es tal cual lo puso malakian, con el responseText devuelves el texto de tu consulta, un ejemplo sencillo, supongamos que tu script PHP devuelve esto:
Código PHP:
Ver original
  1. echo "foo|bar";

En Javascript lees el resultado y lo puedes parsear:
Código Javascript:
Ver original
  1. var response = ajax.responseText.split('|');

Claro eso es un ejemplo muy burdo, lo mejor para mi gusto es usar JSON, o XML ya que fueron pensados para estos casos.

Saludos.
  #8 (permalink)  
Antiguo 24/08/2011, 16:39
Avatar de dmm84  
Fecha de Ingreso: marzo-2011
Mensajes: 164
Antigüedad: 13 años
Puntos: 13
Respuesta: Devolver resultado de PHP a Ajax

ese es mi problema, que no se como hacer para que lo lea javascript lo que devuelvo con php
__________________
Mas vale un codigo que mil palabras
  #9 (permalink)  
Antiguo 25/08/2011, 07:08
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 6 meses
Puntos: 45
Respuesta: Devolver resultado de PHP a Ajax

Bueno, en vista de que no lo conseguiste te pondre un ejemplo para que puedas solucionar tu problema

Código Javascript:
Ver original
  1. function mi_funcion(str){
  2.  
  3.     myAjax.open("POST", "ajax.php");
  4.     myAjax.onreadystatechange = resultado;
  5.  
  6.     myAjax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  7.  
  8.     myAjax.send("search="+str);
  9.  
  10. }
  11.  
  12. function resultado(){
  13.  
  14.     if (myAjax.readyState == 4) {
  15.  
  16.         var valor = myAjax.responseText;
  17.  //aca en valor ya tienes lo que retornaste en tu archivo php
  18.         alert(valor);
  19.  
  20.     }
  21.  
  22. }

con eso bastaria
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #10 (permalink)  
Antiguo 25/08/2011, 16:06
Avatar de dmm84  
Fecha de Ingreso: marzo-2011
Mensajes: 164
Antigüedad: 13 años
Puntos: 13
Respuesta: Devolver resultado de PHP a Ajax

la primera funcion que has escrito es la que ya tengo hecha y me funciona perfectamente, el problema lo tengo con la segunda que sigo sin conseguir que me funcione. Tengo el codigo así:

Código Javascript:
Ver original
  1. function enviar() {
  2.     var miObj = null;
  3.     if(window.XMLHttpRequest) {
  4.         miObj = new XMLHttpRequest();
  5.     } else if(window.ActiveXObject) {
  6.         miObj = new ActiveXObject("Microsoft.XMLHTTP");
  7.     } else {
  8.         alert("Desde este navegador no puedes usar algunas funciones");
  9.     }
  10.    
  11.     ajax = nuevoAjax();
  12.     ajax.open("POST", "pagina.php",true);
  13.     ajax.onreadystatechange = function() {
  14.         if (ajax.readyState == 4) {
  15.             contenedor.innerHTML = ajax.responseText;
  16.         }
  17.     }
  18.     ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  19.     ajax.send("");
  20. }
  21.  
  22. function recargar(){
  23.     if (myAjax.readyState == 4) {
  24.         var valor = myAjax.responseText;
  25.         alert(valor);
  26.     }
  27. }
__________________
Mas vale un codigo que mil palabras
  #11 (permalink)  
Antiguo 25/08/2011, 16:43
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 6 meses
Puntos: 45
Respuesta: Devolver resultado de PHP a Ajax

por lo que veo la funcion recargar te sobra...

una pregunta, que es contenedor????
has revisado la consola de errores??
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #12 (permalink)  
Antiguo 25/08/2011, 16:56
Avatar de dmm84  
Fecha de Ingreso: marzo-2011
Mensajes: 164
Antigüedad: 13 años
Puntos: 13
Respuesta: Devolver resultado de PHP a Ajax

creo que te refieres que sobra este trozo y la verdad es que si porque lo he editado unas cuantas muchas veces, llevo bastante tiempo comiendome la cabeza

Código Javascript:
Ver original
  1. ajax.onreadystatechange = function() {
  2.         if (ajax.readyState == 4) {
  3.             contenedor.innerHTML = ajax.responseText;
  4.         }
  5.     }

en todas mis pruebas miro la consola de errores y ahora mismo no me da ningun error (no se si es bueno o malo porque sigue sin funcionar) :(
__________________
Mas vale un codigo que mil palabras
  #13 (permalink)  
Antiguo 26/08/2011, 07:54
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 6 meses
Puntos: 45
Respuesta: Devolver resultado de PHP a Ajax

a ver, observando mejor tu funcion, me doy cuenta que esta mal!!
segun lo que tienes ahi, en la variable miObj estas "creando tu objeto xmlhttprequest" eso quiere decir que tu variable "ajax" no tiene nada, para no modificar tanto la funcion cambia "miObj" por ajax...

te pregunto por contenedor?? donde lo definiste?? has intentado leer tu codigo??
en tu html tienes un div con id="contenedor"?????

mira esta funcion intenta corregir y analizar...
Código Javascript:
Ver original
  1. function enviar() {
  2.     var ajax = null;
  3.     if(window.XMLHttpRequest) {
  4.         ajax = new XMLHttpRequest();
  5.     } else if(window.ActiveXObject) {
  6.         ajax = new ActiveXObject("Microsoft.XMLHTTP");
  7.     } else {
  8.         alert("Desde este navegador no puedes usar algunas funciones");
  9.     }
  10.    
  11.    
  12.     ajax.open("POST", "pagina.php",true);
  13.     ajax.onreadystatechange = function() {
  14.         if (ajax.readyState == 4) {
  15.            document.getElementByid("contenedor").innerHTML = ajax.responseText;
  16.         }
  17.     }
  18.     ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  19.     ajax.send("");
  20. }

__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #14 (permalink)  
Antiguo 26/08/2011, 16:41
Avatar de dmm84  
Fecha de Ingreso: marzo-2011
Mensajes: 164
Antigüedad: 13 años
Puntos: 13
Respuesta: Devolver resultado de PHP a Ajax

he conseguido que funcione, gracias por tu gran ayuda :) ya le he cogido el truco a esto
__________________
Mas vale un codigo que mil palabras

Etiquetas: ajax, conexion, 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 07:53.