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

Ayuda: Recibir varios datos con Ajax

Estas en el tema de Ayuda: Recibir varios datos con Ajax en el foro de Frameworks JS en Foros del Web. Que tal como les va. Me gustaria y me colaboraran en lo siguiente. Soy nuevo usando ajax y me gustaria saber como puedo hacer para ...
  #1 (permalink)  
Antiguo 16/08/2007, 08:48
 
Fecha de Ingreso: agosto-2007
Mensajes: 12
Antigüedad: 17 años, 4 meses
Puntos: 0
Pregunta Ayuda: Recibir varios datos con Ajax

Que tal como les va. Me gustaria y me colaboraran en lo siguiente.

Soy nuevo usando ajax y me gustaria saber como puedo hacer para recibir varios datos de una pagina php, es decir, mi ejemplo es el sgte:

Voy a llamar a este archivo php que tiene lo sgte :
abc.php
---------------------------
<?
echo"holaaa"";
?>
---------------------------
function ajaxPrueba()
{
ajax=nuevoAjax();
ajax.open("GET", "abc.php",true)
ajax.onreadystatechange=function()
{
if (ajax.readyState==4)
{
valor=ajax.responseText;
alert(valor);
}
}
}

en el alert de la funcion ajaxPrueba() va a mostrar : " holaaa "

Para ese ejemplo es claro, pero como haria en el caso que en mi funcion ajax Prueba necesite recibir por ejemplo 3 valores para asignarselos a 3 variables que tengo alli.. algo mas o menos asi:

ajax.onreadystatechange=function()
{
if (ajax.readyState==4)
{
datos=ajax.responseText;
var var1= ?
var var2= ?
var var3= ?
}
}
necesito que en la respuesta de ajax vengan los 3 valores para mis tres variables..
Como manejaria eso ? que tendria q asignarle a cada variables ?


No sé si fui lo mas claro, pero creo q se alcanza a entender la idea.
Por favor si alguien sabe me de una mano.
Gracias
  #2 (permalink)  
Antiguo 16/08/2007, 09:30
 
Fecha de Ingreso: agosto-2003
Mensajes: 52
Antigüedad: 21 años, 4 meses
Puntos: 0
Re: Ayuda: Recibir varios datos con Ajax

Ahi lo mejor es utilizar un xml, desde el php generas un xml
Código PHP:
$xml "<xml version=\"1.0\" encoding=\"utf-8\">
<datos>
<dato1>$valor1</dato1>
<dato2>$valor2</dato2>
<dato3>$valor3</dato3>
</datos>"
;
header("Content-Type: Text/xml");
echo 
$xml
Luego con el javascript los manejas mediante el DOM
Código PHP:
ajax.onreadystatechange=function()
{
if (
ajax.readyState==4)
{
datos=ajax.responseXML;
var 
var1datos.getElementsByTagName("dato1").item(0).firstChild.data;
var 
var2datos.getElementsByTagName("dato2").item(0).firstChild.data;
var 
var3datos.getElementsByTagName("dato3").item(0).firstChild.data;
}

  #3 (permalink)  
Antiguo 16/08/2007, 11:18
 
Fecha de Ingreso: octubre-2006
Ubicación: México D.F
Mensajes: 210
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: Ayuda: Recibir varios datos con Ajax

Definitivamente es con un archivo que devuelva formato XML.

Yo lo he usado y funciona de maravilla.

También podría ser usando JSON (pero es otro rollo)

Un saludo
  #4 (permalink)  
Antiguo 17/08/2007, 08:45
 
Fecha de Ingreso: agosto-2007
Mensajes: 12
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Ayuda: Recibir varios datos con Ajax

Que tal Randill

Gracias por tomarte la molestia de responder mi inquietud.
Probé la solucion que me planteaste y no me sirvió, no se que pasa, copie y pegue tu ejemplo y me sale un error al momento de preguntar por el data de las etiqueta dato1 y dato2.

Inclusive, le mando a mostrar con alert esto :

var var1= datos.getElementsByTagName("dato1").length;

y me arroja cero, como si no hubiera encontrado ninguna etiqueta con ese nombre.
Le estoy mandando esto desde el PHP:

$xml = "<xml version=\"1.0\" encoding=\"utf-8\">
<datos>
<dato1>fato de prueba 1</dato1>
<dato2>dato de prueba2</dato2>
</datos>";
header("Content-Type: Text/xml");
echo $xml;

Será que me puedes colaborar con eso de bacan !
Gracias !
  #5 (permalink)  
Antiguo 17/08/2007, 09:40
 
Fecha de Ingreso: agosto-2003
Mensajes: 52
Antigüedad: 21 años, 4 meses
Puntos: 0
Re: Ayuda: Recibir varios datos con Ajax

Sorry al xml le faltaron los ?
Código PHP:
$xml = "<?xml version="1.0\" encoding=\"utf-8\"?>
  #6 (permalink)  
Antiguo 17/08/2007, 10:57
 
Fecha de Ingreso: agosto-2007
Mensajes: 12
Antigüedad: 17 años, 4 meses
Puntos: 0
Pregunta Re: Ayuda: Recibir varios datos con Ajax

Nada, no me sirve el ejemplo, que pena con ud de estar insistiendole pero me saca error, me devuelve null

javascript

if (ajax.readyState==4)
{
datos=ajax.responseXML.documentElement;
alert("xml : "+datos);//En este alert me devulve null, no sé q pasa
var var1= datos.getElementsByTagName("nombre")[0].firstChild.data;
var var2= datos.getElementsByTagName("apellido")[0].firstChild.data;
}

php:


$xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>
<datos>
<nombre>carlo</nombre>
<apellido>vega</apellido>
</datos>";
header("Content-Type: Text/xml");
echo $xml;


ayudeme ahi a ver que pasa
  #7 (permalink)  
Antiguo 17/08/2007, 11:04
 
Fecha de Ingreso: agosto-2003
Mensajes: 52
Antigüedad: 21 años, 4 meses
Puntos: 0
Re: Ayuda: Recibir varios datos con Ajax

Código PHP:
if (ajax.readyState==4)

    
datos=ajax.responseXML;
    
alert("xml : "+datos);//imprimira algo como xml:document:xml u object 
    
var var1datos.getElementsByTagName("nombre").item(0).firstChild.data;
    var 
var2datos.getElementsByTagName("apellido").item(0).firstChild.data;


Código PHP:
$xml = "<?xml version="1.0\" encoding=\"utf-8\"?>
<datos>
    <nombre>carlo</nombre>
    <apellido>vega</apellido>
</datos>"
;
header("Content-Type: Text/xml");
echo 
$xml;
  #8 (permalink)  
Antiguo 17/08/2007, 19:17
 
Fecha de Ingreso: octubre-2006
Ubicación: México D.F
Mensajes: 210
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: Ayuda: Recibir varios datos con Ajax

Prueba asi:

En un archivo PHP:
Código PHP:
<?php
header
('Content-Type: text/xml');
?>
<datos>
    <nombre>carlo</nombre>
    <apellido>vega</apellido>
</datos>

El script en js
Código PHP:
objAjaxEnv = new getAjax();
    
objAjaxEnv.open('GET''archivo.php' true);
.
.
.

if (
objAjaxEnv.readyState == 4){
    var 
nombreobjAjaxEnv.responseXML.getElementsByTagName('nombre')[0];
    var 
apellidoobjAjaxEnv.responseXML.getElementsByTagName('apellido')[0];
     
  
alert('Nombre: ' nombre.firstChild.data ' Apellido: ' apellido.firstChild.data);

        


Seguro que funciona !


... a mi me rula.

Un saludo.
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 19:31.