entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Cargar datos en Select

En mi anterior pregunta sobre borrajear elementos de un div también hay algo que me lleva de cabeza. Lo cual es que al agregar un elemento nuevo no actualiza los select con los datos que ya se seleccionaron.

Borrar elementos de un div

En mi formulario al seleccionar una opción de un select se me cargan los datos de una consulta con la opción seleccionada pero cuando agrego un elemento nuevo en el formulario no se me cargan los elementos.

La función que estoy usan es:

$(document).ready(function basestablas(){
                $("#basesdedatos").change(function () {

                    $("#basesdedatos option:selected").each(function () {
                        id_base = $(this).val();
                        $.post("php/creaciontablasybases/consultatabla.php", {id_base: id_base }, function(data){
                            $(".tablasselecionadas").html(data);
                        });            
                    });
                })
            });

la cual al selecciona un elemento en el select con id = basesdedatos me realiza la consulta situada en consultatabla.php y me imprime en otro select con class = tablasselecionadas el resultado de la consulta.

si vuelvo a seleccionar otra opción del select basesdedatos si que me lo actualizas los agregados pero ya me cambia los elemento antes selecciona. Por ello solo quiero permitir que se pueda seleccionar una vez en el select basesdedatos.

Una opción que e pensado es la de guardar el resultado de la función en una variable y después cada vez que se inserta un elemento nuevo se carge una variable en ese elemento.

¿Como debería realizar la función? e probado varias cosas pero nunca me a mostrado los elementos de la variable me dice que es valor nulo

1voto

magarzon comentado

Explícate mejor o añade más código, porque no he entendido mucho tu problema

1voto

FelipeMedel comentado

no entendi bien, lo que deseas es que al agregar un nuevo elemento

"seria mas facil de entender o comprender si muestras una imagen de la vista o explicas mejor"

debe cargar las opciones o alguna opción en especifico del select???
la verdad no comprendí bien lo que deseas hacer, pero en caso de que sea algo así, tendrías que crear una función que se ejecute al iniciar con los valores por defecto y haga el llamado a las funciones que necesitas...

1voto

garri comentado

enter image description here

1 Respuesta

2votos

magarzon Puntos30650

Vale, creo que ya lo entendí:

Tienes un select que selecciona una base de datos, al seleccionarla, los select de "Selecciona tabla" se rellenan con la lista de tablas de esa base de datos.

Lógicamente, como ese relleno se ejecuta en el onChange del select de la base de datos, si añades dinámicamente más constraints, sus selects no están rellenos.

La solución más sencilla, tal y como tienes tu código, sería algo así, guardando el resultado de la última petición en una variable global (por cierto, he mantenido lo del each, pero no sería necesario, puesto que entiendo que solo se puede seleccionar una base de datos, y por tanto ese bucle va a ser sobre un solo elemento)

var listaDeTablas = '';
$(document).ready(function basestablas(){
                $("#basesdedatos").change(function () {

                    $("#basesdedatos option:selected").each(function () {
                        id_base = $(this).val();
                        $.post("php/creaciontablasybases/consultatabla.php", {id_base: id_base }, function(data){
                            listadeTablas = data;
                            $(".tablasselecionadas").html(listadeTablas);
                        });            
                    });
                })
            });

Y luego en la función que te añade los nuevos constraints:

function addConstraint() {
    //Lo que hagas para añadir los nuevos constraint y luego:
    $(".tablasselecionadas").html(listadeTablas);

}

0voto

garri comentado

Si es justo eso voy a probar como me has dicho haber que tal.

gracias por tu respuesta

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta