Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] No reconoce una variable una respuesta JSON

Estas en el tema de No reconoce una variable una respuesta JSON en el foro de Jquery en Foros del Web. Hola Amigos de Foros del Web, un gran saludos a todos y de antemano les agradezco cualquier ayuda que me puedan dar. Estoy trabajando con ...
  #1 (permalink)  
Antiguo 28/02/2013, 15:49
 
Fecha de Ingreso: octubre-2011
Ubicación: Niquitao
Mensajes: 28
Antigüedad: 12 años, 6 meses
Puntos: 0
No reconoce una variable una respuesta JSON

Hola Amigos de Foros del Web, un gran saludos a todos y de antemano les agradezco cualquier ayuda que me puedan dar.

Estoy trabajando con PHP MVC en Zend Framework y necesito cargar combobox dependientes de otros, observe este enlace
http://cefaleapersistente.wordpress.com/2012/09/18/select-dependientes-con-zend-framework-y-jquery/

y soluciono mi problema en parte, pues el código que carga el combo 2 con el combo1 es el siguiente en esa página:

<script type="text/javascript">
$(function(){
$('#item_select_1').change(function(){
var ajax = $.ajax({
type: "GET",
url: "/ad/getmodelos/id/" + $(this).val(),
async: true,
dataType: "json",
beforeSend: function(x) {
if(x && x.overrideMimeType) {
x.overrideMimeType("application/j-son;charset=UTF-8");
}
},
success: function(data){
var options = '';
for (var i = 0; i < data.length; i++) {
options += '<option value="' + data[i].id_modelo + '">' + data[i].nombre_modelo + '</option>';
}
$('#item_select_2').html(options);
}
});
});
})();
</script>

pero esta función que se plantea en esa página tendría que repetirse en varias ocaciones si ya uno quisiera llenar mas de 2 combobox.
En mi caso necesito llenar al rededor de 7 combobox, por la tanto hice esta misma función pero generica, para reutilizarla las veces que la necesite, pero ya la invocaria con el nombre de los combobox implicados y los campos del combo que se llenara con la respuesta JSON.

Al hacerlo la función generica me quedo de la Siguinete Forma:

LoadSelect = function (data) {
id = data.atributs['id'];
name = data.atributs['name'];
$.ajax({
url: data.url,
type: data.type,
data: data.data,
async: true,
dataType: data.data['format'],
beforeSend: function(x) {
if(x && x.overrideMimeType) {
x.overrideMimeType("application/j-son;charset=UTF-8");
}
},
success: function(data){
var options = '';
for (var i = 0; i < data.length; i++) {
options += '<option value="' + data[i].id + '">' + data[i].name + '</option>';
}
$('#'+id).html(options);

}
});
},

invocaría la función de la Siguiente Forma:

$('#idcollection').bind('change',function () {
$("#idubication option:first").text("Loading ...");
LoadSelect({
url : '/'+$lang+'/library/material/pruebaubication/',
type : 'GET',
data : {'format':'json','ubicationid':$(this).val()},
atributs : {'id':"idubication",'name':"name"},
element : $('#idcollection option:selected').val()
});
});

Si observamos en el ciclo de la respuesta JSON

la linea esta así y no me funciona pues no reonoce la variable id
options += '<option value="' + data[i].id + '">' + data[i].name + '</option>';

si le doy un alert a la variable option me muestra este resultado
<option value=undefined>Primaria</option><option value=undefined>Psicología</option>

Me muestra este resultado por que el campo name es una clave de los valores que me devuelve la respeuesta JSON y así se llama la variable pero si la variable name la cambio por otro nombre tambien me pondra undefined, pero como la variable id no es igual al valor que me devuelve la respuesta JSON, me pone undefined

Si yo hago esto inmediatamente me da los resultados esperados.

options += '<option value="' + data[i].idubication + '">' + data[i].name + '</option>';

<option value="2">Primaria</option><option value="3">Psicología</option>

intente con la funcion eval() y no me funciono.

muchas gracias por la ayuda que me puedan dar mil gracias

Última edición por elpropiopato23; 28/02/2013 a las 16:45
  #2 (permalink)  
Antiguo 04/03/2013, 14:42
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: No reconoce una variable una respuesta JSON

por favor utilice el highlight para mostrar código, leer su post es una tortura visual, si quiere ayuda trate de proporcionar la información de la mejor forma, el highlight está para ayudarle.

use una consola de depuración web como firebug para ver el JSON que devuelve el servidor, analice el mismo para ver si es válido.

¿para que es el mimetype que envía en el beforeSend?: hasta donde sé el que tiene que enviar información de que la data devuelta es un json es el server, no el cliente.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Etiquetas: json, reconoce, respuesta, variable
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 01:43.