Foro de programación en PHP
Formulario dinámico
| Autor: cyberkodiak Publicado: 15-5-2008 06:32 AM |
|
|
Hola. Estoy escribiendo un formulario dinámico en php. Hay dos desplegables, el segundo depende de la opción seleccionada del primero del primero. He encontrando mucha información sobre este caso, pero el problema es que yo obtengo los datos de un script .sh alojado en el mismo servidor unix. Para el primer select utilizo la funcion exec, y me lista bien las opciones. Para el segundo tengo que ejecutar otro script pero pasándole de parámatro la opción seleccionada en el primer select, sin embargo no encuentro la manera de hacer. He probado con onchange pero no sé como ejecutar el script con el argumento en Javascript. ¿Alguien puede ayudarme? |
|
| Autor: Xesar Publicado: 19-5-2008 04:00 AM |
|
| Me ha gustado eso de formulario dinámico con php, mira haber con javascript ;) | |
| Autor: sara Publicado: 19-5-2008 11:13 AM |
|
| Hola, a ver si te sirve esto de ayuda, yo no lo he probado pero me parece que funciona. A este codigo lo llaman AJAX: document.getElementById("iddelselect") Recoge el valor del ID que has seleccionado en el primer select. Con ello haz lo que creas conveniente. Por ejemplo, lo colocas en una funcion (en un script) y a la funcion la llamas en el onchange del primer select. En la funcion deberas de recoger lo seleccionado en el select con document.getElementById("iddelselect") y con ello, por ejemplo, devolver un valor para que dependa de el los datos ue imprimas en el segundo select Espero que te sirva. Un Saludo. |
|
| Autor: Xesar Publicado: 20-5-2008 06:01 PM |
|
| Buenas, respondiendo un poco a los dos, lo que comenta sara es javascript. Para hacer un formulario dinámico con php y javascript mediante ajax te recomiendo que empiezes usando la librería XHConn. | |
| Autor: cyberkodiak Publicado: 21-5-2008 06:35 AM |
|
| Bueno el caso ees que no puedo usar Ajax ni otros librerías, sólo javascript y php "a pelo". Y no sé como hacer exactamente el conservar la variable necesaria para generar el segundo select, Es decir pasar la variable de js a php. El otro problema sería conservar el primer select. Gracias por vuestra ayuda. |
|
| Autor: Xesar Publicado: 22-5-2008 05:40 PM |
|
| Pues para pasarle el valor del primer select a tu función php y que te carge el script correspondiente al segundo select sin recargar la página necesitas usar ajax. También puedes hacer que al seleccionar el primer select te vayas a una segunda página donde le pases el valor del primer select, eso ya si lo puedes hacer con php solamente. | |
| Autor: Natxo Publicado: 23-5-2008 10:46 AM |
|
| <script language="javascript"> primerArray = new Array("primer ítem", "segundo ítem"); primerItemArray = new Array("array primer ítem", "array segundo ítem"); segundoItemArray = new Array("array tercer ítem", "array cuarto ítem"); function precarga() { //precargamos el primer array window.document.form1.primero.options[0] = new Option(primerArray[0],0); window.document.form1.primero.options[1] = new Option(primerArray[1],1); //precargamos el segundo array window.document.form1.segundo.options[0] = new Option(primerItemArray[0],0); window.document.form1.segundo.options[1] = new Option(primerItemArray[1],1); } function actualizarSegundoArray() { //borramos el contenido del segundo select while (window.document.form1.segundo.length > 0) window.document.form1.segundo.remove(0); if (window.document.form1.primero.selectedIndex == 0) { //ha elegido el primer ítem del primer select //cargamos el segundo select con el array llamado primerItemArray window.document.form1.segundo.options[0] = new Option(primerItemArray[0],0); window.document.form1.segundo.options[1] = new Option(primerItemArray[1],1); } else { //ha elegido el segundo ítem del primer select //cargamos el segundo select con el array llamado primerItemArray window.document.form1.segundo.options[0] = new Option(segundoItemArray[0],0); window.document.form1.segundo.options[1] = new Option(segundoItemArray[1],1); } } </script> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Untitled Document</title> </head> <body onLoad="javascript:precarga()"> <form id="form1" name="form1" method="post" action=""> <label>Primero menú <select name="primero" id="primero" onChange="javascript:actualizarSegundoArray()"> </select> </label> <label>Segundo menú <select name="segundo" id="segundo"> </select> </label> </form> </body> </html> |
|

