FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
activar multiples selects
Hola saludos a todos.... :
Este es el codigo que escribí para los selcts dependientes unos de otros: _______________________________________________________________________________________ <head> <title>Selects dependientes</title> </head> <SCRIPT LANGUAGE="JavaScript"> <!-- hide from old browsers function envia(i) {//esta funcion se encarga de asignar la variable de control, según el combo activado, con valores arbitrarios asociados a estos, dicha variable esta asociada a un campo de texto oculto. Además de enviar el formulario. if(i==1){document.form1.control.value='cierto';}//select1 if(i==2){document.form1.control.value='falso';}//select2 if(i==3){document.form1.control.value='tabla';}//select3 document.form1.submit() } // end script hiding --> </SCRIPT> <?php // aquí se asignan los valores enviados por el método get del form1,se envian por get porque utilizamos el post para el form2 if(isset($_GET[select1])&&($_GET[select1]!='')){$v1=$_GET[select1];} if(isset($_GET[select2])&&($_GET[select2]!='')){$v2=$_GET[select2];} if(isset($_GET[select3])&&($_GET[select3]!='')){$v3=$_GET[select3];} if(isset($_GET[control])){$v4=$_GET[control];} // Connecxion $link = mysql_connect('localhost', 'root', '') or die('Could not connect: ' . mysql_error()); mysql_select_db('prueba') or die('Could not select database'); ?> <body> <form id="form1" name="form1" method="get" action="" > <label>Combo1 <select name="select1" tabindex="50"onChange="envia(1)"> <option value="" selected="selected">combo1</option> <?php $Sql = "SELECT * FROM tabla1"; //la tabla1 solo tiene 2 campos, el indice y el valor o texto. $seg = mysql_query($Sql) or die(mysql_error()); while ($row = mysql_fetch_row($seg)){ ?> <option value="<?php echo $row[0];?>"<?php if(isset($v1)&&($v1==$row[0])){echo 'selected';}?> > <?php echo $row[1];?> </option> <?php }?> </select> </label> Combo2 <label><select name="select2" onChange="envia(2)"> <option value="" selected="selected">combo2</option> <?php //Verificamos la variable correspondiente al combo anterior para hacer la consulta, la tabla2 tiene 3 campos, el indice, el texto y la referencia a la tabla anterior. if(isset($v1)){ $Sql = "SELECT * FROM tabla2 where campo3=$v1"; $cord= mysql_query($Sql) or die(mysql_error()); while ($row = mysql_fetch_row($cord)){ ?> <option value="<?php echo $row[0];?>"<?php if(isset($v2)&&($v2==$row[0])){echo 'selected';}?> > <?php echo $row[1];?> </option><?php }}?> </select> </label> <label>Combo3 <select name="select3" onChange="envia(3)"> <option value="" selected="selected">combo3</option> <?php if($v4!='cierto'){//aqui verificamos la variable de control, el valor "cierto" esta asociado al select1, osea que hay un combo intermedio entre ambos, esto sirve para n combos, pero en lugar de (variable_de_control!='valor asociado al combo lejano') se debe utilizar ((variable_de_control=='valor asociado al combo anterior')||(variable_de_control=='valor asociado al mismo combo')). if(isset($v2)){ $Sql = "SELECT * FROM tabla3 where campo3=$v2"; $cord= mysql_query($Sql) or die(mysql_error()); while ($row = mysql_fetch_row($cord)){ ?> <option value="<?php echo $row[0];?>" <?php if(isset($v3)&&($v3==$row[0])){echo 'selected';}?>> <?php echo $row[1];?> </option><?php }}}?> </select> </label> <input type="hidden" name="control"> </form> <?php if($_POST){ // Aquí va el codigo correspondiente a lo que se va a hacer con la opción selecionada del radio group.... }?> <form name="form2" method="post" action=""> <table width="200" border="1"> <tr> <td>Valor</td> </tr> <?php if((isset($v3))&&($v4=='tabla')){//Se verifica el valor asociado al combo al cual hacen referencia los valores de la tabla $Sql = "SELECT * FROM tabla4 where campo3=$v3"; $cord= mysql_query($Sql) or die(mysql_error()); while ($row = mysql_fetch_row($cord)){ ?> <tr> <td><label> <input type="radio" name="GrupoOpciones1" value="<?php echo $row[0];?>"> <?php echo $row[1];?></label></td> </tr> <?php }}?> </table> <p> <input type="submit" name="Submit" value="Aceptar" accept=""> </p> </form> <p> </p> </body> </html> Última edición por woduro fecha: 24-06-2007 a las 16:13:07. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Mandar valores de selects de una pagina a otra | Caray | PHP | 6 | 29-05-2007 04:09:32 |
Selects | yhoho | SQL | 0 | 29-09-2004 23:55:10 |
multiples registros | azaagh | Conexión con bases de datos | 8 | 10-06-2004 02:45:55 |
Ejecutar selects en segundo plano | cartmanrules | Firebird e Interbase | 2 | 27-05-2004 19:08:56 |
Parametros opcionales en SELECTs | Gydba | Firebird e Interbase | 4 | 22-04-2004 22:46:38 |
|