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

Como retornar un JSON desde una funcion

Estas en el tema de Como retornar un JSON desde una funcion en el foro de Frameworks JS en Foros del Web. Hola, Tengo el siguiente problema. Tengo una funciona ke lo unico que debe hacer es ir a buscar un json a un php y retornarlo ...
  #1 (permalink)  
Antiguo 07/05/2010, 08:39
Avatar de Rocket  
Fecha de Ingreso: diciembre-2001
Ubicación: Santiago, Chile
Mensajes: 272
Antigüedad: 22 años, 4 meses
Puntos: 4
Pregunta Como retornar un JSON desde una funcion

Hola,

Tengo el siguiente problema.
Tengo una funciona ke lo unico que debe hacer es ir a buscar un json a un php y retornarlo y el problema es que esa funcion me retorna "undefined" por lo que no puedo leer la informacion.

la otra opcion que tengo es que en vez de retornar el objeto JSON, retorne el string del JSON pero tampoco se como transformar el string en un objeto JSON en javascript.

eem, se entendio? :P

bueno, de antemano gracias
  #2 (permalink)  
Antiguo 07/05/2010, 08:59
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Como retornar un JSON desde una funcion

¿Qué haz hecho? Ejmplo de lo que puedes hacer.
Código PHP:
Ver original
  1. <?php
  2. $a = array ('a'=>1,'b'=>2,'c'=>3,'d'=>'foo','e'=>'bar');
  3. $json = json_encode($a);
  4. ?>
  5. <script type="text/javascript">
  6. var myJSONObject = <?php echo $json; ?>;
  7. document.write(myJSONObject.a + '<br />');
  8. document.write(myJSONObject.b + '<br />');
  9. document.write(myJSONObject.c + '<br />');
  10. document.write(myJSONObject.d + '<br />');
  11. document.write(myJSONObject.e + '<br />');
  12. </script>
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 07/05/2010, 09:39
Avatar de Rocket  
Fecha de Ingreso: diciembre-2001
Ubicación: Santiago, Chile
Mensajes: 272
Antigüedad: 22 años, 4 meses
Puntos: 4
Respuesta: Como retornar un JSON desde una funcion

mmmmm... seguí con las pruebas y me di cuenta que el problema es otro...
esta es la función que va a buscar al json, esta hecha con jquery (no esta completa pero es algo asi):

function _getVideoList (search) {
var _result;

var a = $.ajax({
url: 'php que retorna el json',
type: 'GET',
data: {
's': search},
dataType: 'json',
cache: false,
success: function(_data, _textStatus, _XMLHttpRequest) {
_result = _data;
return _result;
},
error: function(_XMLHttpRequest, _textStatus, _errorThrown) {
_result = {"return": "00", "msg": "Ha ocurrido un error al obtener los resultados."};
return _result;
},
complete: function(_XMLHttpRequest, _textStatus) {
alert(_result);
alert('ok');
}
});

alert('fin');
}


dentro de la pagina hago esto

var data = _getVideoList('pro');
alert(data);

y ese alert me muestra undefined.

pero, en la funcion tengo 2 alert, uno al final y otro en el evento complete, y el alert del fin me aparece antes que el del ok, puede ser que la funcion termina de ejecutarse antes de que reciba el json y por eso retorna undefined...

hay una forma de solucionar esto??
  #4 (permalink)  
Antiguo 07/05/2010, 09:55
Avatar de Rocket  
Fecha de Ingreso: diciembre-2001
Ubicación: Santiago, Chile
Mensajes: 272
Antigüedad: 22 años, 4 meses
Puntos: 4
Respuesta: Como retornar un JSON desde una funcion

Lo solucione!!!!


era lo ke te comentaba, le agregue la propiedad async en false al jquery y ahi lo hizo de forma asincrona, linea por linea :P

Etiquetas: funcion, jquery, json
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 10:42.