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

recoger varias variables con ajax

Estas en el tema de recoger varias variables con ajax en el foro de Frameworks JS en Foros del Web. Soy nueva en esto y quisiera saber si con ajax puedo recoger varias variables que me devuelva una consulta en php. pongo un ejemplo: Código: ...
  #1 (permalink)  
Antiguo 24/01/2011, 04:14
 
Fecha de Ingreso: enero-2011
Mensajes: 4
Antigüedad: 8 años, 7 meses
Puntos: 0
recoger varias variables con ajax

Soy nueva en esto y quisiera saber si con ajax puedo recoger varias variables que me devuelva una consulta en php.

pongo un ejemplo:

Código:
function nuevoAjax()
	{
		var xmlhttp=false;
		try 
		{
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e) 
		{
			try 
			{
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch (E) 
			{
				xmlhttp = false;
			}
		}
		if (!xmlhttp && typeof XMLHttpRequest!='undefined') 
		{
			xmlhttp = new XMLHttpRequest();
		}
		return xmlhttp;
	}

function llenar_objetos()
	{
		ajax=nuevoAjax();
		ajax.open("GET", "prueba1.php",true);

		ajax.onreadystatechange=function() 
		{
			if (ajax.readyState==4)
			{	
				//Aqui es donde quiero recoger las variables de php para llenar varios objetos.
				//document.getElementById('echos').innerHTML = ajax.responseText;
			}
					}
		ajax.send(null);
	}
codigo en php.
prueba1.php
Código:
<?
$dp_di="localhost";
$db_usuario="***";
	$clave_db="***";
	 if(!$conexion=mysql_connect($dp_di,$db_usuario,$clave_db))
     {
       die('Error al conectarse a la base de datos');
     }
  if(!mysql_select_db("empleados",$conexion))
     {
       die('Error al seleccionar la base de datos');
     }
	 

$result = mysql_query("SELECT nombre,seccion,sueldo, fincontrato FROM empleados");




//	if($result!=NULL)
	//{ 			
				
		while ($row=mysql_fetch_array($resultado))
		{
			$nombre=$row['nombres'];
                        $seccion=$row['seccion'];
                        $sueldo=$row['sueldo'];
                        $fecha=$row['fincontrato']; 
		}
   mysql_close(); 
   
   
?>
  #2 (permalink)  
Antiguo 24/01/2011, 09:02
 
Fecha de Ingreso: mayo-2007
Ubicación: Córdoba, Argentina
Mensajes: 56
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: recoger varias variables con ajax

Hola Nilla:

Mirá en esta página (está en inglés) donde explica claro el envío de información sea por POST o por GET:

http://www.w3schools.com/ajax/ajax_xmlhttprequest_send.asp

Si querés te puedo enviar dos funciones que tengo: una es ajax_post que te envía todo un formulario completo y otro es ajax_get que envía por GET algunas o ninguna variable. Fueron hechos por Javier Mellado.

Cualquier cosa avisame y te las envío.

Un abrazo.

Adrian
  #3 (permalink)  
Antiguo 24/01/2011, 09:32
Avatar de alfcm  
Fecha de Ingreso: mayo-2009
Mensajes: 291
Antigüedad: 10 años, 3 meses
Puntos: 7
Respuesta: recoger varias variables con ajax

Hola Nilla

pues puedes hacer esto si es lo q tu estas buscando,, aunque hay otra forma con json o xml q te facilitan para mayor complejidad

Pero por lo pronto puedes hacer esto:
Código PHP:
Ver original
  1. $t = "<table border=1><tr><td>Nombre</td><td>Seccion</td><td>Sueldo</td><td>Fecha</td></tr>";
  2.  
  3. while ($row=mysql_fetch_array($resultado))
  4. {
  5.     $nombre=$row['nombres'];
  6.         $seccion=$row['seccion'];
  7.         $sueldo=$row['sueldo'];
  8.         $fecha=$row['fincontrato'];
  9.         $t.="<tr><td>".$nombre."</td><td>".$seccion."</td><td>".$sueldo."</td><td>".$fecha."</td></tr>";
  10.                        
  11. }
  12.  
  13. $t.="</table>";
  14.  
  15. echo $t;

Y esa tabla lo mandara a tu div
document.getElementById('echos').innerHTML

Saludos
  #4 (permalink)  
Antiguo 25/01/2011, 01:40
 
Fecha de Ingreso: enero-2011
Mensajes: 4
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: recoger varias variables con ajax

Cita:
Iniciado por adriannjimenez Ver Mensaje
Hola Nilla:

Mirá en esta página (está en inglés) donde explica claro el envío de información sea por POST o por GET:

http://www.w3schools.com/ajax/ajax_xmlhttprequest_send.asp

Si querés te puedo enviar dos funciones que tengo: una es ajax_post que te envía todo un formulario completo y otro es ajax_get que envía por GET algunas o ninguna variable. Fueron hechos por Javier Mellado.

Cualquier cosa avisame y te las envío.

Un abrazo.

Adrian

Perdona pero creo que me has entendido al revés lo que quiero es recoger varias variables de php en html, no enviar varias variables por post o por get.
  #5 (permalink)  
Antiguo 25/01/2011, 03:40
 
Fecha de Ingreso: mayo-2007
Ubicación: Córdoba, Argentina
Mensajes: 56
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: recoger varias variables con ajax

Ahh. Entonces es como te lo dice alfcm donde haces pagina1.php como si fuera independiente y si el estado es 4 (readyState=4) se te incorpora en la div que definiste.
Un abrazo y suerte
  #6 (permalink)  
Antiguo 27/01/2011, 02:03
 
Fecha de Ingreso: enero-2011
Mensajes: 4
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: recoger varias variables con ajax

Cita:
Iniciado por alfcm Ver Mensaje
Hola Nilla

pues puedes hacer esto si es lo q tu estas buscando,, aunque hay otra forma con json o xml q te facilitan para mayor complejidad

Pero por lo pronto puedes hacer esto:
Código PHP:
Ver original
  1. $t = "<table border=1><tr><td>Nombre</td><td>Seccion</td><td>Sueldo</td><td>Fecha</td></tr>";
  2.  
  3. while ($row=mysql_fetch_array($resultado))
  4. {
  5.     $nombre=$row['nombres'];
  6.         $seccion=$row['seccion'];
  7.         $sueldo=$row['sueldo'];
  8.         $fecha=$row['fincontrato'];
  9.         $t.="<tr><td>".$nombre."</td><td>".$seccion."</td><td>".$sueldo."</td><td>".$fecha."</td></tr>";
  10.                        
  11. }
  12.  
  13. $t.="</table>";
  14.  
  15. echo $t;

Y esa tabla lo mandara a tu div
document.getElementById('echos').innerHTML

Saludos
Perdona, pero no hay alguna forma en la que no tenga que dibujar en php y me pueda devolver todos las variables nombre, seccion, sueldo y fecha y yo ponerlo luego en mi pagina html.

document.getElementById('suledo').value=sueldo

gracias
  #7 (permalink)  
Antiguo 27/01/2011, 09:41
Avatar de alfcm  
Fecha de Ingreso: mayo-2009
Mensajes: 291
Antigüedad: 10 años, 3 meses
Puntos: 7
Respuesta: recoger varias variables con ajax

Código PHP:
Ver original
  1. if ($row=mysql_fetch_array($resultado)){
  2.   $xml="<?xml version='1.0' encoding='ISO-8859-1'?>
  3.    <datos>
  4.    <existe>OK</existe>
  5.    <nombres><![CDATA[".$row['nombres']."]]></nombres>
  6.    <seccion><![CDATA[".$row['seccion']."]]></seccion>
  7.    <sueldo><![CDATA[".$row['sueldo']."]]></sueldo>
  8.    </datos>";
  9. }else{
  10.   $xml="<?xml version='1.0' encoding='ISO-8859-1'?>
  11.         <datos>
  12.         <existe>FALSO</existe>
  13.         </datos>";
  14. }
  15. header("Content-type: text/xml");
  16. echo $xml;

y en tu javascript haces esto

Código Javascript:
Ver original
  1. if (ajax.readyState==4)
  2. {
  3.    
  4. //Aqui es donde quiero recoger las variables de php para llenar varios objetos.
  5. var resp=ajax.responseXML;
  6. if (resp.getElementsByTagName("existe")[0].firstChild.nodeValue == "OK"){
  7. document.getElementById("nombres").value =resp.getElementsByTagName("nombres")[0].firstChild.nodeValue;
  8. document.getElementById("seccion").value = resp.getElementsByTagName("seccion")[0].firstChild.nodeValue;
  9. document.getElementById("sueldo").value = resp.getElementsByTagName("sueldo")[0].firstChild.nodeValue;
  10. }else{
  11. alert("NO EXISTE ESTE REGISTRO");
  12. }
  13.  
  14. }

si llegas a utilizar un framework como JQuery(el q yo uso) te facilita y hace menos engorroso todo este codigo ya q tambien permite trabajar con formato JSON, el cual php puede enviarlo en ese formato

Saludos espero te ayude

Última edición por alfcm; 27/01/2011 a las 09:48

Etiquetas: ajax, recoger, variables
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:36.