Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/02/2010, 06:32
sloy
 
Fecha de Ingreso: noviembre-2008
Mensajes: 24
Antigüedad: 15 años, 6 meses
Puntos: 0
Función que devuelve un array, con AJAX y jQuery

Hola a todos. Una vez más acudo a este foro para intentar dar solución a un problema que me tiene loco. Mi caso es el siguiente.

Necesito hacer una función que obtenga mediante AJAX una lista de asignaturas en una base de datos. Para ello uso jQuery. Hasta ahí bien. Obtengo un objeto en JSON. El problema viene a la hora de "extraer" ese objeto, y hacer que la función lo devuelva. ...creo que no me explico muy bien, mejor pongo código.

Esta es la función que debería devolver un array con la lista de asignaturas:
Código Javascript:
Ver original
  1. function get_asignaturas(){
  2.         var respuesta = new Array();
  3.        
  4.         // Petición AJAX al servidor
  5.         $.ajax({
  6.             url: '../php/seleccion.php?f=asignaturas&nocache='+Math.random(),
  7.             type:'GET',
  8.             dataType: 'json',
  9.             // Si la respuesta es exitosa:
  10.             success: function(json){
  11.                 //el script php devuelve algo como {"array": ["Inglés", "Francés"]}
  12.                 respuesta = json.array;
  13.             }
  14.         }); // end $.ajax
  15.        
  16.         return respuesta;
  17.     }

pero la función me devuelve el array 'respuesta' vacío, como si la parte de "respuesta = json.array;" no hiciese nada. Pero 'json.array' no está vacío, porque si pongo "alert(json.array) en la función 'success', me muestra correctamente el array ["Inglés", "Francés"]

¿Se entiende ahora? Lo que quiero es que la función devuelva el array ["Inglés", "Francés"].
¿Alguna idea de por qué no funciona tal como lo estoy haciendo?
Un saludo