Programación php
Email: Password:


¡Regístrate gratis! | ¿Has perdido tu password?

Home
Blog

En él que podrás informarte de todas las noticias relacionadas con el posicionamiento de páginas web.

Clica aquí para Entrar



Foro de programación en PHP

Responder el mensaje

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>