Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-06-2007
woduro woduro is offline
Miembro
 
Registrado: sep 2006
Posts: 16
Poder: 0
woduro Va por buen camino
Exclamation 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>&nbsp;</p>
</body>
</html>

Última edición por woduro fecha: 24-06-2007 a las 16:13:07.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 12:00:08.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi