Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/09/2009, 13:00
climax2006
 
Fecha de Ingreso: abril-2006
Mensajes: 240
Antigüedad: 20 años, 6 meses
Puntos: 1
Error al obtener datos JSON en un for

Hola:
MI consulta es que necesito obtener datos de una bdd de tipo JSON, todo bien, al traerlos de forma manual pero solo me devuelve un solo registro, entonce uso for para recorrer, pero no me obtiene nada.
probe con con el length y me devuelve indefinido

Uso la libreria prototype 1.6..
este es el codigo


Código PHP:
//esto me devuelve la bdd
{id:1, descripcion:'Consultas Médicas Y De Otro Tipo De Profesionales'},{id:2, descripcion:'Psicoterapia O Intervención Psicosocial'},{id:3, descripcion:'Días Camas'},{id:4, descripcion:'Exámenes'},{id:5, descripcion:'Rayos O Imagenología'},{id:6, descripcion:'Procedimientos'}

//aca llamo el js
$("slc_int_mai_head").onfocus  = function(){ cargarComboBoxDom("select", "cargarDatosMaiHead", "acc/accionXdb.class.php", "slc_int_mai_head"); }; 

//e invoco la funcion
function cargarComboBoxDom(clase, metodo, url, combo){
    var 
cache     = new Date().getTime();
    var 
clase    = clase;
    var 
metoro    = metodo;
    var 
url     = url;
    var 
datos     = 'clase=' + clase + "&metodo=" + metodo + "&cache=" + cache;
    try{
        return new 
Ajax.Request(url, {
                                     
parameters:datos,
                                     
onSuccess:function(resp){
                                                    var 
http  = resp.responseText.evalJSON();
                                                   $(
combo).options.length = 0;
                                                   var 
opcion = new Option('Debes seleccionar una opcion',''); 
                                                   $(
combo).options[$(combo).options.length] = opcion;
                                                   var 
opcion = new Option(http.descripcion, http.id)      // ok
                                                   
$(combo).options[$(combo).options.length] = opcion; // ok
                                                                                                  
                                                                                                   //aka no m devuelve nada si hago un alert tampoco entra
                                                                                                   
for(var i = 0; i < http.length; i++){
                                                       var 
https = http[i];
                                                       var 
opcion = new Option(https.descripcion, https.id)
                                                       $(
combo).options[$(combo).options.length] = opcion;
                                                   }
                                                   
                                                }
                                     }
                               );
    }catch(
e){
        
alert("Atención: Ha ocurrido un error en el metodo cargarComboBoxDom()\n Por favor contactese con el administrador del sistema");  
    }
} 

Última edición por climax2006; 04/09/2009 a las 13:08