Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/09/2012, 11:30
miwelillo
 
Fecha de Ingreso: junio-2008
Mensajes: 175
Antigüedad: 15 años, 10 meses
Puntos: 11
Problema actualizando valores de un SELECT

Hola a todos,

Tengo 2 selects que quiero hacer dependientes, es decir, que el segundo se actualice con valores de la BDD cuando cambie el primero.

El primer select tiene el id #item_select_1 mientras que el segundo tiene #item_select_2

Los datos se obtienen mediante una funcion que realiza una peticion a una URL y me devuelve una respuesta JSON. Hasta aqui todo correcto, lo he probado y funciona bien. El problema es que no consigo actualizar los valores del segundo select aun cuando la peticion me recoge los valores correctamente.

Os pongo el codigo:

Código PHP:
<script type="text/javascript"
        $(function(){
            $(
'#item_select_1').change(function(){
                var 
ajax = $.ajax({
                    
type"GET",
                    
url"/ad/getmodelos/id/" + $(this).val(),
                    
asynctrue,
                    
dataType"json",
                    
success: function(data){
                        var 
options '';
                        for (var 
0data.lengthi++) {
                            
options += '<option value="' data[i].optionValue '">' data[i].optionDisplay '</option>';
                        }
                        
console.log(options);
                        $(
"#item_select_2").html(options);
                    }
                });
                
console.log(ajax);
            });
        })();
    
</script> 
Vereis que hay una linea en la que hago "console.log(ajax)" para examinar la peticion. Si miro en la consola JS veo que efectivamente me devuelve

responseText: "{"3":"nombre modelo"}", etc. es decir, la respuesta JSON por lo que la peticion se recibe bien. Pero por algun motivo no se actualizan los valores del select. Mencionar que estoy usando Zend Framework 1.X pero estoy haciendo esto a mano ya que aun no domino demasiado la libreria ZendX.

Un saludo.