CASO 4: FORMULARIO INFORMACIÓN ADICIONAL Y CATEGORÍA

En el siguiente artículo se explicará cómo fue implementado el código del caso FORMULARIO INFORMACIÓN ADICIONAL Y CATEGORÍA de la funcionalidad Formulario Para la implementación de esta funcionalidad se usó el lenguaje de programación PHP, además se usa el método Get para el envío de datos entre la plataforma web Verifíquese Cédula Almacén y la plataforma móvil Verifíquese Cédula Premium, antes de comenzar se debe descargar la base de datos y montarla en un motor de MySQL, puedes descargar el código fuente pulsando en el siguiente enlace Clic aquí para descargar el código fuente.

El siguiente código pertenece al formulario:

<?php
   
//Se toman los datos enviados desde la app Verifíquese Cédula Premium con el método GET
   
$orh = null;
   
$bdh = null;
   
$wso = null;
   
$pur = null;
   
$gel = null;
   
$poe = null;
   
$wad = null;
   
$qwe = null;
   
$tyu = null;
   
$klz = null;
   
$sde = null;
   
$xlq = null;
   
$adicional1 = null;
   
$adicional2 = null;
   
$adicional3 = null;
   
$adicional4 = null;
   
$adicional5 = null;
   
$combo = null;
    if (!empty(
$_GET['orh'])) {
       
$orh = $_REQUEST['orh'];
    }
    if (!empty(
$_GET['bdh'])) {
       
$bdh = $_REQUEST['bdh'];
    }
    if (!empty(
$_GET['pur'])) {
       
$pur = $_REQUEST['pur'];
    }
    if (!empty(
$_GET['wso'])) {
       
$wso = $_REQUEST['wso'];
    }
    if (!empty(
$_GET['gel'])) {
       
$gel = $_REQUEST['gel'];
    }
    if (!empty(
$_GET['poe'])) {
       
$poe = $_REQUEST['poe'];
    }
    if (!empty(
$_GET['qwe'])) {
       
$qwe = $_REQUEST['qwe'];
    }
    if (!empty(
$_GET['tyu'])) {
       
$tyu = $_REQUEST['tyu'];
    }
    if (!empty(
$_GET['klz'])) {
       
$klz = $_REQUEST['klz'];
    }
    if (!empty(
$_GET['sde'])) {
       
$sde = $_REQUEST['sde'];
    }
    if (!empty(
$_GET['xlq'])) {
       
$xlq = $_REQUEST['xlq'];
    }
    if (!empty(
$_GET['wad'])) {
       
$wad = $_REQUEST['wad'];
    }
   
?>

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="iso-8559-1"/>
    <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="stylesheet" type="text/css" href="bootstrap/css/bootstrap.min.css">
</head>

<body  >
    <div class="container-fluid">
            <div class="row">
                <h3>Listado de documentos consultados</h3>
            </div>
            <div>
<!--Se usa método GET para el envío de los datos adicionales, los datos de la categoría y los datos del documento escaneado-->
<form class="form-horizontal" action="index.php" method="get">
<table class="table table-striped table-bordered">
<thead>
<tr>
<th>Nombre Categoría</th>
<th>Extra</th>
</tr>
</thead>
<tbody>
<?php
                           
require 'database.php';
                           
$pdo = Database::connect();
                           
//Se busca la categoría a la que pertenece el documento escaneado
                           
$sql = "Select categories.name_category, categories.Extra from categories inner join documentcategory on categories.id_categories = documentcategory.category where documentcategory.citizen_id = '".$gel."' and documentcategory.document_type = '".$qwe."' and documentcategory.country = '".$wad."'";
                            foreach (
$pdo->query($sql) as $row) {
                                echo
'<tr>';
                                echo
'<td>'.$row['name_category'].'<input name="category" type="hidden" value="'.$row['name_category'].'"></td>';
                                echo
'<td>'.$row['Extra'].'<input name="categoryExtra" type="hidden" value="'.$row['Extra'].'"></td>';   
                            }
                           
                           
Database::disconnect();
                       
?>

</tbody>
</table>
<div class="control-group">
<label >Primer Nombre</label>
<input name="orh" type="text" class="form-control" placeholder="Primer Nombre" value="<?php echo !empty($orh)?$orh:'';?>">
</div>
<div class="control-group">
<label>Segundo Nombre</label>
<input name="bdh" type="text" class="form-control"  placeholder="Segundo Nombre" value="<?php echo !empty($bdh)?$bdh:'';?>">
</div>
<div class="control-group">
<label>Primer Apellido</label>
<div class="form-control">
<input name="pur" type="text" class="form-control" placeholder="Primer Apellido" value="<?php echo !empty($pur)?$pur:'';?>">
</div>
</div>
<div class="control-group">
<label>Segundo Apellido</label>
<input name="wso" type="text" class="form-control" placeholder="Segundo Apellido" value="<?php echo !empty($wso)?$wso:'';?>">
</div>
<div class="control-group">
<label>Número de Documento</label>
<input name="gel" type="text" class="form-control" placeholder="Número de Documento" value="<?php echo !empty($gel)?$gel:'';?>">
</div>
<div class="control-group">
<label>País</label>
<input name="wad" type="text" class="form-control" placeholder="País" value="<?php echo !empty($wad)?$wad:'';?>">
</div>
<div class="control-group">
<label>Tipo de Documento</label>
<input name="qwe" type="text" class="form-control" placeholder="Tipo de Documento" value="<?php echo !empty($qwe)?$qwe:'';?>">
</div>
<div class="control-group">
<label>Fecha de Lectura</label>
<input name="tyu" type="text" class="form-control" placeholder="Fecha de Lectura" value="<?php echo !empty($tyu)?$tyu:'';?>">
</div>
<div class="control-group">
<label>Latitud</label>
<input name="klz" type="text" class="form-control" placeholder="Latitud" value="<?php echo !empty($klz)?$klz:'';?>">
</div>
<div class="control-group">
<label>Longitud</label>
<input name="sde" type="text" class="form-control" placeholder="Longitud" value="<?php echo !empty($sde)?$sde:'';?>">
</div>
<div class="control-group">
<label>Información Extra</label>
<textarea name="xlq" rows="5" cols="40"><?php echo $xlq;?></textarea>
</div>
<div class="control-group">
<label >Combo</label>
<select name="combo" value="<?php echo !empty($combo)?$combo:'';?>">
<option value="">Seleccione</option>
<option value="valor1">Valor 1</option>
<option value="valor2">Valor 2</option>
<option value="valor3">Valor 3</option>
</select>
</div>
<div class="control-group">
<label>Color</label>
<input id="h" type="color" name="color">
</div>
<div class="control-group">
<label>Fecha</label>
<input id="h" type="date" name="date">
</div>
<div class="control-group">
<label>Adicional 1</label>
<input name="adicional1" type="text" class="form-control" placeholder="Adicional 1" value="<?php echo !empty($adiciona1)?$adicional1:'';?>">
</div>
<div class="control-group">
<label>Adicional 2</label>
<input name="adicional2" type="text" class="form-control"  placeholder="Adicional 2" value="<?php echo !empty($adiciona2)?$adicional2:'';?>">
</div>
<div class="control-group">
<label>Adicional 3</label>
<input name="adicional3" type="text" class="form-control"  placeholder="Adicional 3" value="<?php echo !empty($adiciona3)?$adicional3:'';?>">
</div>
<div class="control-group">
<label>Adicional 4</label>
<input name="adicional4" type="text" class="form-control" placeholder="Adicional 4" value="<?php echo !empty($adiciona4)?$adicional4:'';?>">
</div>
<div class="control-group">
<label>Adicional 5</label>
<input name="adicional5" type="text" class="form-control" placeholder="Adicional 5" value="<?php echo !empty($adiciona5)?$adicional5:'';?>">
</div>
<button type="submit" class="btn btn-success">Aceptar</button>
</form>
</div>

    </div> <!-- /container -->

  </body>
</html>

En el anterior formulario se reciben los datos enviados del documento escaneado desde la aplicación móvil Verifíquese Cédula Premium para luego buscar la categoría a la que pertenece el documento, una vez echa esta búsqueda se procede a mostrar los datos de la categoría en la tabla, junto con los datos del documento escaneado, en este formulario hay unos campos adicionales en los cuales se puede colocar cualquier información adicional relevante del documento, cuando se pulsa en el botón Aceptar se envía, por método GET, toda la información del documento, la información adicional y la categoría a la que pertenece el documento a la aplicación móvil Verifíquese Cédula Premium.

El siguiente código pertenece al archivo de conexión a la base de datos:

<?php
class Database
{
    private static
$dbName = 'vfq_premium_almacen' ;
    private static
$dbHost = 'localhost' ;
    private static
$dbUsername = 'username';
    private static
$dbUserPassword = 'passwd';
    private static
$port = '3306';
    private static
$cont  = null;
    
    public function
__construct() {
        die(
'Init function is not allowed');
    }
    
    public static function
connect()
    {
      
// One connection through whole application
      
if ( null == self::$cont )
       {    
        try
        {
         
self::$cont =  new PDO( "mysql:host=".self::$dbHost.";"."port=".self::$port.";"."dbname=".self::$dbName, self::$dbUsername, self::$dbUserPassword);
         
self::$cont -> exec("set names utf8");
        }
        catch(
PDOException $e)
        {
          die(
$e->getMessage());
        }
       }
       return
self::$cont;
    }
    
    public static function
disconnect()
    {
       
self::$cont = null;
    }
}
?>