Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/09/2009, 10:53
rdos
 
Fecha de Ingreso: mayo-2009
Mensajes: 10
Antigüedad: 15 años
Puntos: 0
Problema JQuery - dropdowns encadenados

Saludos a todos. Tengo un problema que no he podido solucionar y es el siguiente: En una página tengo cuatro dropdowns, dos de ellos tienen la lista de tablas de una base de datos, al hacer click en uno de éstos debe mostrarme en el dropdown adyacente a él las columnas que tiene dicha tabla (la seleccionada en el primer dropdown). Para el primer dropdown me funciona perfecto, al seleccionar una tabla me muestra en el dropdown adyacente los campos de ésta, pero para el otro dropdown al seleccionar una tabla no hace nada, nisiquiera hace la llamada a AJAX. A continuación les dejo el código que utilicé:

var x;
x=$(document);
x.ready(function (){
var x;
x=$("#table_1");
var y;
y=$("#table_2");
x.change(function (){
selected = $("#table_1").attr("value");
$.ajax({async:true,
type: "POST",
dataType: "html",
contentType: "application/x-www-form-urlencoded",
url:"index.php",
data:{table_selected:selected,data_process:'true', module:'gis',action:'get_tables',last_module:'gis' },
success:Datos,
timeout:4000,
error:problemas});
return false;});
y.change(function (){
selected_2 = $("#table_2").attr("value");
$.ajax({async:true,
type: "POST",
dataType: "html",
contentType: "application/x-www-form-urlencoded",
//contentType: "application/json;charset=utf8",
url:"index.php",
data:{table_selected:selected_2,data_process:'true ',module:'gis',action:'get_tables',last_module:'gi s'},
//beforeSend:inicioEnvio,
success:Datos_2,
timeout:4000,
error:problemas});
return false;});
});

function problemas(XMLHttpRequest, textStatus, errorThrown)
{
alert(XMLHttpRequest);
alert(textStatus);
alert(errorThrown);
}

function Datos(datos)
{
data=eval(datos);

var options = '';

for (var i = 0; i < data.length; i++) {
options += '<option value="' + data[i].NAME + '">' + data[i].NAME + '</option>';
}
$("#field_table_1").html(options);
}

function Datos_2(datos)
{
data=eval(datos);

var options = '';

for (var i = 0; i < data.length; i++) {
options += '<option value="' + data[i].NAME + '">' + data[i].NAME + '</option>';
}
$("#field_table_2").html(options);
}
</CODE>

table_1 y table_2 son los dropdowns que contienen la lista de tablas, field_table_1 y field_table_2 son los que deben llenarse con la lista de campos de la tabla correspondiente.

Perdón por el desorden en el código pero no sé como colocarlo en un cuadro organizado y que se vea como un editor de texto así como varios lo postean.

Muchas gracias por su ayuda.

Última edición por rdos; 24/09/2009 a las 10:59