Selección automática en un menú desplegable, sin necesidad de botón OK…

En ocasiones puede resultarnos necesario (para impresionar!) preparar un menú desplegable que permita escoger una opción y proceder, sin necesidad de hacer clic en un botón “OK” o “Seguir”.

Este es un ejemplo sencillo. Presentamos un menú desplegable según los datos leídos de una base PostgreSQL.  Al seleccionar una de las opciones, una función en javascript hace el trabajo de enviarnos a la siguiente página.

Aclaración: la variable $mibase es un enlace a la base de datos PostgreSQL que consultamos para tener una lista desplegable. El fichero comun.php hace este enlace (lo ponemos así en nuestro sistema par no andar repitiendo tanto). Está claro que el menú desplegable se puede sin ningún problema generar con opciones estáticas, pero este ejemplo está tan interesante que lo considero con valor añadido. 😆

<script language=’javascript’>
function juan(){
var paginita=’pruebaautomatico1.php’;
if (entrada.ejecuta.value==’0′) return;
entrada.action=paginita;
entrada.submit();
window.close();
}
</script>
<?php
echo “<center><h1>Solicitud de materiales del Almacén</h1></center>”;
error_reporting(E_ALL); //entrada.action=entrada.ejecuta.value;
require(“comun.php3”);
echo “<center>”;
echo “<table><tr><td align=center>Escoja el insumo</td></tr><tr><td>”;
echo “<form name=entrada target=_blank id=entrada>”;
$taller=pg_query($mibase,”select codigo,descripcion
from cup where codigo in
(select idmaterial from matsurtidos
where termi=’t’)
order by codigo”);
echo “<select name=ejecuta id=ejecuta onchange=juan();>”;
echo “<option value=’0′>”;
echo “<otras opciones>”;
echo “</options>”;
$pagina=’pagina.php’;
for ($i=0;$i<pg_num_rows($taller);$i++)
{
$este=pg_fetch_row($taller,$i);
//echo “<option value=’$este[1]’>”; echo $este[1];
echo “<option value=’$este[0]’>”; echo $este[0].” “.$este[1];
echo “</option>”;
}
echo “</select>”;
echo “</center>”;
echo “</td></tr></table>”;
echo “</form>”;

?>

El código de pruebaautomatico1.php, que es otro menú desplegable que resulta generado por el primero, es:

<script language=’javascript’>
function juan(){
var paginita=’pagina.php’;
if (entrada.ejecuta.value==’0′) return;
entrada.action=paginita;
entrada.submit();
window.close();
}
</script>
<?php
$ejecuta=$_GET[‘ejecuta’];
echo “<center><h1>Solicitud de materiales del Almacén</h1></center>”;
error_reporting(E_ALL); //entrada.action=entrada.ejecuta.value;
require(“comun.php3”);
echo “<center>”;
echo “<table><tr><td align=center>Ha escogido: $ejecuta</td></tr>
<tr><td align=center>Escoja el surtido</td></tr><tr><td>”;
echo “<form name=entrada target=_blank id=entrada>”;
$taller=pg_query($mibase,”select t1.idsurtido, t2.nombre
from matsurtidos t1, surtido t2
where idmaterial=’$ejecuta’ and t1.idsurtido=t2.idsurtido
order by idsurtido”);
echo “<select name=ejecuta id=ejecuta onchange=juan();>”;
echo “<option value=’0′>”;
echo “<otras opciones>”;
echo “</options>”;
$pagina=’pagina.php’;
for ($i=0;$i<pg_num_rows($taller);$i++)
{
$este=pg_fetch_row($taller,$i);
//echo “<option value=’$este[1]’>”; echo $este[1];
echo “<option value=’$este[0]’>”; echo $este[0].” “.$este[1];
echo “</option>”;
}
echo “</select>”;
echo “</center>”;
echo “</td></tr></table>”;
echo “</form>”;

?>

Y bueno, cómo proseguir ya es materia de estudio para cada cual.

Esta entrada fue publicada en Debian, Linux, Programación, Ubuntu. Guarda el enlace permanente.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *