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

Recoger Array php desde AJAX

Estas en el tema de Recoger Array php desde AJAX en el foro de Frameworks JS en Foros del Web. Un saludo, foro: Estoy intentando sacar unos datos de una bd y colocarlos en unos campos de texto, según la opción que se elige en ...
  #1 (permalink)  
Antiguo 14/11/2010, 16:47
Avatar de Alun  
Fecha de Ingreso: diciembre-2009
Ubicación: Liverpool
Mensajes: 140
Antigüedad: 14 años, 4 meses
Puntos: 4
Recoger Array php desde AJAX

Un saludo, foro:

Estoy intentando sacar unos datos de una bd y colocarlos en unos campos de texto, según la opción que se elige en un campo <select>, todo ello mediante AJAX. Hasta ahora no he conseguido mostrar nada desde la página AJAX, aunque se me muestra bien si accedo directamente a la URL del archivo PHP.

No se por qué, no podía recoger el array, así que estoy intentando juntar los valores en una cadena (son valores numéricos y de texto, pero los paso todos a texto, y los separo mediante una coma), y así poder pasar la cadena entera. Al mostrar un alert de prueba en la página, solamente se me muestra una coma (,), omitiendo los valores recogidos, y las demás comas. El código es este:

Código Javascript:
Ver original
  1. if(instancia.status == 200)
  2. {
  3.  if(instancia.responseText)
  4.  {
  5.   var puntos = instancia.responseText;
  6.   alert(puntos);
  7.  }
  8.  else
  9.  {
  10.   alert('No hay respuesta del server');
  11.  }
  12. }

y en el servidor, esto:

Código PHP:
Ver original
  1. if($query)
  2. {
  3.  $puntos = mysql_fetch_row($query);
  4.  $punto = (string)'';
  5.  for($x=0;$x < count($puntos);$x++)
  6.  {
  7.   $punto .= $puntos[$x].',';
  8.  }
  9.  $punto = "$punto";
  10.  echo $punto;
  11. }

Como ya digo, en el alert se me muestra solamente una coma (,). ¿Qué error tiene el código? ¿Cómo puedo pasar el array entero?

Muchas gracias de antemano.

Última edición por Alun; 15/11/2010 a las 14:49 Razón: Mal explicado
  #2 (permalink)  
Antiguo 15/11/2010, 16:38
Avatar de Alun  
Fecha de Ingreso: diciembre-2009
Ubicación: Liverpool
Mensajes: 140
Antigüedad: 14 años, 4 meses
Puntos: 4
Respuesta: Recoger Array php desde AJAX

alguna ayuda, por favor? Estoy muy perdido en esto de AJAX, y me interesa bastante aprender cómo va.

Gracias
  #3 (permalink)  
Antiguo 17/11/2010, 11:34
Avatar de theSpecialist  
Fecha de Ingreso: noviembre-2010
Mensajes: 5
Antigüedad: 13 años, 5 meses
Puntos: 3
Respuesta: Recoger Array php desde AJAX

Si estas incursionando en esto de ajax te recomiendo Jquery para que no te rompas mucho el casco:::: es mucho mas claro.. este es un ejemplo de como pasas una variable php a Js..
del mismo modo lo puedes hacer con un Array o un Objeto.. solo tienes que recorrerlo con un bucle en Js.

Del lado del cliente:
Código Javascript:
Ver original
  1. $.ajax({
  2.         type: "GET",
  3.         dataType: "json",
  4.         url:'URL',
  5.         success:function(data){
  6.                 alert(data.status); // retorna EXITO.
  7.         }
  8.     });

Del lado del servior:
Código PHP:
Ver original
  1. <?php
  2.       $estado['status'] = 'EXITO';
  3.       print json_decode($estado);
  4. ?>

Espero que te sirva de ayuda... Visita la Jquery.com y lee la documentacion, veras la gloria..
  #4 (permalink)  
Antiguo 17/11/2010, 13:22
Avatar de Alun  
Fecha de Ingreso: diciembre-2009
Ubicación: Liverpool
Mensajes: 140
Antigüedad: 14 años, 4 meses
Puntos: 4
Respuesta: Recoger Array php desde AJAX

Gracias por la respuesta:

La verdad es que no entiendo gran cosa de jquery. Este código, ¿lo tengo que meter dentro de la función que tengo preparada paar ejecutarse al recibir respuesta del servidor? ¿Es la función de respuesta en si? ¿Sigo necesitando con ella crear el objeto XMLHttpRequest, o puedo prescindir ya de él?

De nuevo gracias por responder.
  #5 (permalink)  
Antiguo 19/11/2010, 11:53
Avatar de theSpecialist  
Fecha de Ingreso: noviembre-2010
Mensajes: 5
Antigüedad: 13 años, 5 meses
Puntos: 3
Respuesta: Recoger Array php desde AJAX

Ok creo que debí explicarte mejor...

Jquery es una maravillosa librería JavaScript, esta facilita de una manera increíble el uso de AJAX, de manera que te evitas al 100% esa instanciadera y toda esas complicaciones... ademas de que tu código queda mucho mas optimizado para trabajar en la mayoría de navegadores incluso IE...

Para utilizar la librería debes incluirla en tu script, puedes incluirla en el <head> de tu aplicacion:
Código Javascript:
Ver original
  1. <script src="http://code.jquery.com/jquery-1.4.4.js"></script>

Puedes usar esa versión online o bien descargarte el js desde el sitio de jquery.com..

Te daré una breve explicación de como trabaja la función $.Ajax de Jquery.. pero lo ideal es que entres a Jquery.com y leas la documentacion que está muy bien elaborada y hasta un niño la entiende..

Ok una vez incluida tu librería Jquery puedes comenzar a utilizar las funciones..
las funciones de jquery por defecto siempre comienzan con $, veamos la función $.ajax:

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script src="http://code.jquery.com/jquery-1.4.4.js"></script>
<script>
function obtenerTalentos(){
  $.ajax({
    type: 'GET',//Este es el metodo que utilizaremos
    dataType: "json",// Este es el tipo de data a utilizar en sustitución de XML
    url: 'mi_script.php',// Este es tu Script de lado del servidor.
    success:function(data){ //Esto pasará si todo sale bien...
	//en data tenemos todo lo recogido desde el array php del server...
	//Recorriendo data
	alert(data.musico);              
	alert(data.pintor);              
	alert(data.atleta);
    }
  });
}
</script>
</head>

<body>
<button onclick="obtenerTalentos()">Obtener Talentos</button>
</body>
</html> 
Y del lado del servidor usaras la función nativa de php json_encode, para codificar tu array a notación json.. puedes probar el script solo para que veas lo que es una notación json, si quieres profundizar en esto te recomiendo wikipedia, no es nada del otro mundo, simplemente es una cadena string escrita con ciertas normativas para poder ser interpretada por JavaScript... igual la puedes escribir manualmente e imprimirla..

Código PHP:
Ver original
  1. <?php
  2.     $my_array = array('musico'=>'beethoven','pintor'=>'picazo','atleta'=>'felix sanchez');
  3.     print json_encode($my_array);
  4. ?>

Bueno, ya con esto estamos listo para probar tu primer request ejax, una vez tengas los datos en JavaScript puedes hacer lo que te venga en mente con ellos, ya sea colocarlos en un select o simplemente mostrarlo en pantalla.....

y lo del script PHP, puedes traer tu array de donde quieras o como sea, solo tienes que imprimirlo Json, en caso que quieras usar XML, pues cambia el type y solo tendrás que escribir XML con tu script php....

Recuerdo cuando daba mis primeros pasos con esto hace 2 años.. nadie me daba un empujón.. y gracias a un colega fue que pude ver detrás de la puerta... espero que esto te haya ayudado...

Saludos desde la República!
  #6 (permalink)  
Antiguo 26/11/2010, 01:38
 
Fecha de Ingreso: marzo-2010
Mensajes: 63
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Recoger Array php desde AJAX

theSpecialist

GARCIASSSSSSSSSS !!! Estoy estos dias estudiando el tema y este ejemplo es muy claro.

Para completarlo un poco, como le pasarias desde jquery parametros al php (por ejemplo un array) y como desde php recibes este array

Gracias por tu ayuda, me has ayudado con dudas q tenia sobre el manejo


Saludos.
Savi.

Etiquetas: ajax, php, recoger
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 18:04.