Foros del Web » Programando para Internet » PHP » Zend »

Problema actualizando valores de un SELECT

Estas en el tema de Problema actualizando valores de un SELECT en el foro de Zend en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 17/09/2012, 11:30
 
Fecha de Ingreso: junio-2008
Mensajes: 175
Antigüedad: 15 años, 9 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.
  #2 (permalink)  
Antiguo 17/09/2012, 11:39
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Problema actualizando valores de un SELECT

No parece haber nada raro, la variable options tiene el html correctamente generado ?, el nodo #item_select_2 existe en el DOM al momento de setearle el html ?
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 17/09/2012, 12:40
 
Fecha de Ingreso: junio-2008
Mensajes: 175
Antigüedad: 15 años, 9 meses
Puntos: 11
Respuesta: Problema actualizando valores de un SELECT

Cita:
Iniciado por masterpuppet Ver Mensaje
No parece haber nada raro, la variable options tiene el html correctamente generado ?, el nodo #item_select_2 existe en el DOM al momento de setearle el html ?
La variable "options" esta en blanco, eso es lo raro.

El DOM contiene los ids correctamente setteados, te pongo el codigo que me genera Zend_Form cuando saco la salida por el viewer:

Código PHP:
<input type="text" name="titulo_anuncio" id="titulo_anuncio" value=""></dd>
<
dt id="item_select_1-label"><label for="item_select_1" class="optional">Marca:</label></dt>
<
dd id="item_select_1-element">
<
select name="marca_anuncio" id="item_select_1">
    .....
</
select></dd>
<
dt id="item_select_2-label"><label for="item_select_2" class="optional">Modelo:</label></dt>
<
dd id="item_select_2-element">
<
select name="modelo_anuncio" id="item_select_2">
   ...
</
select></dd
  #4 (permalink)  
Antiguo 18/09/2012, 01:36
 
Fecha de Ingreso: junio-2008
Mensajes: 175
Antigüedad: 15 años, 9 meses
Puntos: 11
Respuesta: Problema actualizando valores de un SELECT

Acabo de probar otra cosa, he hecho un beforeSend seteandole las cabeceras de JSON y esto es lo que tengo:

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",
                    
beforeSend: function(x) {
                        if(
&& x.overrideMimeType) {
                         
x.overrideMimeType("application/j-son;charset=UTF-8");
                        }
                       },                        
                    
success: function(data){
                        var 
options '';                     
                        for (var 
0data.lengthi++) {
                            
options += '<option value="' data[i].optionValue '">' data[i].optionDisplay '</option>';
                        }
                        
console.log(data);
                    }
                });                              
            });
        })();
    
</script> 
Lo que me muestra la consola:

Código PHP:
Object
3
"Modelo 3"
__proto__Object 
Pero si hago un console.log(data.length) me muestra: undefined, como si no encontrase nada ??? si intento mirar el contenido de options sigue estando en blanco ya que no hace el for..loop

Etiquetas: ajax, 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 21:04.