| |||
Campo de un formulario que provenga de una base de datos Hola a todos, estoy empezando con php y mysql y lo que necesito hacer es que en un formulario un campo del mismo sea una lista que proviene de una tabla de la base de datos, pero que al elegir una opcion la lista siguiente cambie, y al elegir una opcion de la siguiente cambie tambien, por ejemplo la lista seria de marcas de carros (estas marcas estarian dentro de la base de datos), al elegir la marca en la siguiente lista aparecen los modelos que stan en la base de datos referentes a esa marca y al elegir la marca que en la siguiente aparescan los colores referente a ese modelo, no se si me explique bien, espero que puedan ayudarme. |
| |||
No es difícil, obtiene tus listas de la base de datos y con estos resultados crea arreglos en JavaScript, y podras cambiar los values de tus selects con el evento onchange de cada uno; por ejemplo, digamos que ya tienes el resultado de una Query en un arreglo, arias lo siguiente <script language="javascript"> ArraySelect = new Array(); </script> <? $QueryArray[0]="A"; $QueryArray[1]="B"; $QueryArray[2]="C"; $QueryArray[3]="D"; $idx = 0; $strJava = "<script language='javascript'>" ; foreach ( $QueryArray as $temporal ) { $strJava .= "ArraySelect[".$idx."] = '".$QueryArray[$idx]."' ;" ; $idx++ ; } $strJava .= "</script>" ; echo $strJava ; ?> <form name="form1" method="post" action=""> <select id="MiSelect" name="MiSelect" onChange="javascript:CambiaSelectValues(this.value )"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> </form> <script language="javascript"> function CambiaSelectValues(SelectedValue) { switch(SelectedValue) { case "1": for (i=0; i<4; i++) { document.form1.MiSelect.options[i].value = i ; document.form1.MiSelect.options[i].text = ArraySelect[i] } break; default: alert("sigues haciendo arreglos."); } } </script> copia este código y veras que funciona, analízalo, yo creé un arreglo manual mente para no perder tiempo. Si tienes dudas pregunta. |
| |||
Ah!!! Olvidé una cosa, en el ejemplo que te puse la condición para cambiar los valores y textos del select es que la opción seleccionada sea 1, pero como es la que sale por defecto como seleccionada no se ejecuta el evento onchage, primero selecciona el dos o el tres y después selecciona nuevamente el uno y veras como cambian todos los valores, obviamente el primer valor del select debía ser nulo. |