Sin lista desplegable | Con lista desplegable |
---|---|
Trabajaremos con las siguientes tablas:
- Si quieres el código SQL de la tabla "inquilinos" has clic aquí
- Si quieres el código SQL de la tabla "pagos" has clic aquí
Ahora vamos a crear ese formulario donde se puedan cargar los datos de "inquilinos" y enviar el "id" a través de un formulario web. Este ejemplo no emplea programación orientada a objetos y nos limitamos a enviar la información.
Creamos el formulario en el archivo"pagoIns.php"
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<form class="jpcss" method="post" action="agregar_pago.php">
<fieldset>
<legend>INGRESAR ABONO</legend><br>
Ingrese al aportante: <select name="personas">
<!--Aquí ira el código PHP-->
</select><br><br>
Ingrese el importe: S/
<input type="number" name="importe" min="0.01" step="0.01" value="0.01"><br>
<br><br>
<button onclick="return confirm('¿Seguro que deseas ingresar el pago?')">
INGRESAR
</button>
</fieldset>
</form>
</body>
</html>
Ahora vamos a realizar tanto la conexión como la consulta SQL en código PHP
<?php
#Parámetros de la BD
$cfg['h'] = 'localhost'; #hostname
$cfg['u'] = 'root'; #usuario
$cfg['p'] = ''; #contraseña (password)
$cfg['b'] = 'blog'; #base de datos
$cfg['r'] = '3306'; #puerto
#Conexión
$cnx = mysqli_connect($cfg['h'], $cfg['u'], $cfg['p'], $cfg['b'], $cfg['r']);
mysqli_query($cnx, "set names utf8");
#Consulta SQL
$sql = "SELECT idinquilinos id, "
. "CONCAT_WS (' ',nombres,paterno,materno) "
. "datos FROM inquilinos;";
#Capturando los datos
$bolsa = mysqli_query($cnx, $sql);
$salida = array();
if ($bolsa != null) {
while ($row = mysqli_fetch_assoc($bolsa)) {
$salida[] = $row;
}
mysqli_free_result($bolsa);
} else {
$salida = false;
}
unset($row);
?>
Ese código lo colocaremos al inicio de la siguiente forma. Agregando el código que muestra los datos en la lista desplegable.
<?php
#Parámetros de la BD
$cfg['h'] = 'localhost'; #hostname
$cfg['u'] = 'root'; #usuario
$cfg['p'] = ''; #contraseña (password)
$cfg['b'] = 'blog'; #base de datos
$cfg['r'] = '3306'; #puerto
#Conexión
$cnx = mysqli_connect($cfg['h'], $cfg['u'], $cfg['p'], $cfg['b'], $cfg['r']);
mysqli_query($cnx, "set names utf8");
#Consulta SQL
$sql = "SELECT idinquilinos id, "
. "CONCAT_WS (' ',nombres,paterno,materno) "
. "datos FROM inquilinos;";
#Capturando los datos
$bolsa = mysqli_query($cnx, $sql);
$salida = array();
if ($bolsa != null) {
while ($row = mysqli_fetch_assoc($bolsa)) {
$salida[] = $row;
}
mysqli_free_result($bolsa);
} else {
$salida = false;
}
unset($row);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<form class="jpcss" method="post" action="agregar_pago.php">
<fieldset>
<legend>INGRESAR ABONO</legend><br>
Ingrese al aportante: <select name="personas">
<!--Código PHP-->
<?php
if ($salida) {
foreach ($salida as $persona) {
?>
<option value="<?= $persona['id'] ?>">
<?= $persona['datos'] ?>
</option>
<?php }
}
?>
</select><br><br>
Ingrese el importe: S/
<input type="number" name="importe" min="0.01" step="0.01" value="0.01"><br>
<br><br>
<button onclick="return confirm('¿Seguro que deseas ingresar el pago?')">
INGRESAR
</button>
</fieldset>
</form>
</body>
</html>
Entre las líneas 42 y 51 se aprecia el código que despliega los datos en la lista desplegable pudiendo obtener el efecto deseado. Se emplea antes del foreach un condicional, en caso la tabla se encuentre vacía u ocurra un error.