Funcion de combobox o lista desplegable en PHP


Funcion que facilita la creacion de combobox dinamicos en php, con esta funcion solo tienes que enviarle los parametros correctos y ella hace el resto.

Hay una explicacion de como funciona.

Espero la mejoren y sea de utilidad.

Hola,

Muchas veces necesitamos crear una combo box en PHP y tenemos que hacer mil cosas, por lo que decidí hacer una pequeña función la cual deseo compartir con ustedes y claro se que la pueden mejorar.

Bien la función recibe 4 parámetros

$campo

$titulo: seria el primer texto del combo box, en la mayoría de los caso es un texto descriptivo de las opciones dentro del combobox, en otros casos simplemente se deja en blanco.

$campo: es el nombre que tendrá nuestro combo box.

$tabla: es la tabla de la cual se llenara el combo box.

$texto: es el nombre del campo dentro de la tabla que llenara el combo box.

$selected: el campo que deseamos este seleccionado por defecto

$filtro: si deseamos filtra el contenido del combobox

function combobox($campo,$titulo,$tabla,$texto,$selected,$filtro)
{

if ($filtro==”) {
$sql = “select * from $tabla where 1”;
} else {
$sql = “select * from $tabla where $filtro”;
}

$rs = mysql_query($sql);

echo “<select name=’$campo’>”;
echo “<option>$titulo</option>”;

if ($selected==”)
if ($_POST[$campo]!=”) {$selected = $_POST[$campo];} else {$selected = $_GET[$campo];};

while ($row=mysql_fetch_array($rs)) {
$option = $row[$texto];
echo “<option value=’$option’ “;
if ($option==$selected) {echo ” selected=’selected’ >”;} else {echo “>”;};
echo “$option</option>”;
}
}

Como funciona:

Realizamos el select a la tabla que llenara nuestro combo box.

$sql = “select * from $tabla”;
$rs = mysql_query($sql);

Le ponemos un nombre a nuestro combo box, que sera el valor del parametro $campo, luego creamos el primer valor del combo box, que sera el valor del parametro $titulo y que en muchos casos podria estar vacio.

echo “<select name=’$campo’>”;
echo “<option>$titulo</option>”;

Cuando hacemos un submit necesitamos que nuestro combo box recuerde en que elemento estaba, entonces lo que hacemos es verificar en el arreglo $_POST el valor del combo box, si este tiene un valor entonces se le asignara a la variable $selected, de lo contrario se supone que el valor viene en un query string, osea en la url y se le asigna a traves de $_GET.

if ($_POST[$campo]!=”)
{$selected = $_POST[$campo];}
else
{$selected = $_GET[$campo];};

Luego recorremos la tabla, haciendo a la variable $option igual al valor del campo dentro de la tabla, asignamos este valor al parametro value de nuestro combobox, luego cuando encontremos un campo dentro de la tabla con el mismo valor que nos llego por el $_POST o el $_GET, quiere decir que este es el campo selected, finalmente imprimimos el valor de $option.

while ($row=mysql_fetch_array($rs)) {
$option = $row[$texto];
echo “<option value=’$option’ “;
if ($option==$selected) {echo ” selected=’selected’ >”;} else {echo “>”;};
echo “$option</option>”;
}

Ejemplo:

<form name=”miforma” action=”” method=”POST”>
<?php combobox(‘grabacion’,”,’grabaciones’,’nombre’);
¿>
<input type=”submit” class=”boton” value=”Grabar” name=”Grabar” />
</form>

Espero les sea de ayuda.

Gracias.

Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=2634 por un robot nigromante, si crees que puede mejorarse, por favor, contactanos.


Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.