| |||
![]() ........................................... Última edición por ostayde; 16/02/2006 a las 08:13 Razón: otro enfoque |
| |||
Tienes un ejemplo en las FAQ's del foro PHP. http://www.forosdelweb.com/showthrea...999#post664999 La solución "PHP" recarga toda la página al cambiar una de tus opciones del elemento "padre". Si no te agrada la recarga de página tendrás que ver soluciones basadas en "Remote Scripting", "Ajax" o hibridos Javascript+PHP Algunas de estas soluciones las tienes en este mensaje: http://www.forosdelweb.com/f127/ejemplos-pulldown-dependiente-ping-pong-366079/ Un saludo, |
| |||
Si te fijas en el ejemplo que te indiqué de las FAQ's del foro PHP .. veras que el evento "onChange" se usa igualmente ... pero lo que hacemos en ese ejemplo es "recargar la página" y pre-establecer los valores del primer "select" a lo que seleccionastes y en base al dato que envias (la opción seleccionada del primer <select>) así se consulta a tu BBDD y se genera el 2° <select> dependiente. De hecho lo más "sano" es que los datos de todos los "select" que intervienen estén en Base de datos para establecer las relaciones pertinenetes y "jugar" con esos datos para obtener los que necesitas. Un saludo, |
| |||
Pero vamos a ver ... Empezemos por el principio. Si tu quieres tener "relacionado" un par de juego de datos ("dos tablas") .. aunque una la generes de forma "fija" como lo haces ahora. NECESITAS tener un campo en tu 2° tabla (o mejor dicho tabla "hija") que haga de "clave foránea" .. es decir, que haga esa relación . .por la cual TU vas a realizar una consulta SQL a esa tabla y obtener sólo los registros de esta tabla "normalizados" por ese campo y valor de este. Esto mismo es lo que explicar y así podrás ver si ves bien las tablas del ejemplo que te dejé link que tienes en las FAQ's. Si no haces eso primero .. da igual lo que hagas despues; nunca tendrás el "parámetro" por el cual "relacionas"!!!. Un saludos, |
| |||
asociación de 3 select, uno de ellos se carga de una base de datos Voy a comenzar de nuevo expliacndo lo que tengo que hacer: 1.)SELECT 1: Tengo mi primer select fijo, el cual va a tener el onchange, ya que dependiendo de lo seleccionado a través de una función javascript le paso la variable donde se encuentra el resultado del query que yo deseo mostrar al segundo select. 2.)SELECT 2: Este select no es fijo, además es de multiple selección, el mismo muestra el resultado del query, este resultado repito es de acuerdo a lo seleccionado en el primer select. Aqui el usuario visualiza los datos de un query en filas y debe poder seleccionar las opciones que desee. 3.)SELECT 3: Este select es de selección multiple, el mismo debe mostrar lo que seleccione el usuario en el select 2. Por ejemplo el usuario eligio dos opciones del select 2 entonces al presionar un boton las mismas aparecen en el select 3. En este select 3, el usuario tambien debe poder seleccionar una opcion de las que coloco anteriormente y eliminarlas. Explicación: Selecciono una opción de mi select 1, luego selecciono del select 2 las opciones que yo considere y al presionar un boton dichas opciones aparecen en mi select 3. si me arrepiento de lo que pase hacia mi select 3, debo poder seleccionar la opcion de mi select 3 y eliminarla. Luego selecciono otra opcion de mi select 1 y me aperece otras opciones en mi select 2, escojo las que desee y las paso al presionar un boton a mi select3. Entonces en mi select 3 voy a tener las opciones actuales mas la seleccionadas anteriormente. (deben conservarse todas las opciones seleccionadas del select2 en el select3). Tengo una idea encaminada de como hacerlo pero quisiera opiniones a ver si cambio de idea, más no tengo un código definido aún. Muchas gracias, agradeceria su ayuda.... ![]() Última edición por ostayde; 16/02/2006 a las 07:50 Razón: otro enfoque |
| |||
Ok, Ok, Ok ... Pero de todas forma no aclaras o no ves claro que DEBES tener un campo más extra en tu tabla de tu BBDD "2" que tal dado "depende" del otro. Por ejemplo: id_tabla id_relacion dato sería: 1 <-- registro 1 de tu tabla 2 2 <-- depende de "Menú principal". nose 2 <-- registro 2 de tu tabla 2 4 <-- depende de "Banners" otro dato Lo ves claro ya? Todo esto es para que cuando tu selecciones una opción de tu "<select>" primero .. puedas mandar a ejecutar una consulta SQL filtrando los resultados de esa consulta por el parámetro que dependad. El hecho de que tu 2° listado (<select>) sea multiple o no .. es lo de menos para el tema de la "relación" en sí .. Por lo mismo ... no costaría nada tener una BBDD más para tus datos del primer "select" y tener así realmente un sistema modular bueno. Que pasaría si añades una opción nueva a tu 1er <select>? .. tendrías que hacerlo sobre el código "HTML" .. si usas una BBDD . .sólo añades un registro más y listo .. te olvidas de todo. Esto es justamente lo que define y hace la dichosa FAQ que tanto te insisto que entiendas como funciona y sober todo que la pruebes. Si lo que te preocupa es que el 2° select no es "multiple" . .ya te digo que -dá lo mismo- le pones "multiple" al ejemplo en la definición del <select > segundo y listo ya tienes tu ejemplo hecho. Sólo cambiará la forma en la que recibes los datos (del select 1 opción seleccionada y del 2° que será un "array" no un elemento fijo). Un saludo, |