Conforme o post III desta série sobre a Engine genérica, são 7 as ações possíveis sobre os registros de uma tabela para qualquer tipo de Banco de Dados.
Vamos analisar uma a uma, linha a linha. A primeira é ...
A ação add
Esta ação (1) exibe um formulário dinâmico cujo design é definido pela análise do arranjo de campos definido através do conteúdo do include "ExemploDefinicao.inc", e (2) aguarda o pressionamento do botão de submissão do formulário, para (3) efetuar a consistência campo a campo, e (4) enviar os conteúdos para a ação "addsave". Esta e todas as outras ações estão dentro do escopo da instrução switch do PHP. Vamos mostrar aqui o código completo:
case "add":
// Verifica permissão para a operação
if( $permiteAdd ){
// Titulos e cabeçalhos
$operation = $operAdd;
$description = $descAdd;
require("libCabecalhoPadrao.php");
?>
<h2 class=tit>NOVO REGISTRO</h2>
<h5 class=help>Entrada de Informações. Campos com <img src="Preencha.png"> são obrigatórios</h5>
<?php
openQuadro();
// Formulário de Preenchimento
echo "<form method=post action=?action=addsave&estilo=" . $_GET['estilo'] . " OnSubmit=\"return manda(this);\">";
echo "<table border=0 cellspacing=0>";
// Loop no esquema da estrutura de dados
for($x=0;$x<$NoCampos;$x++){
$sTipo = "";
$inp = "<input";
echo "<tr><td><label>" . $arr[$x][1] . "</label></td>";
echo "<td>";
// Ajuste do tipo, valor e tag do campo
$pl = new paramLine($arr,$x,"");
$inp = $pl->taginput;
$sTipo = $pl->tipocampo;
echo $inp;
echo " name=" . $arr[$x][0] . " id=" . $arr[$x][0];
// Obrigatoriedade do campo
if( $arr[$x][5] == "S" && $x > 0 ){
echo " class=obr ";
}
// Tipos de tags
$tamCampo = $arr[$x][2];
$tamMax = $arr[$x][3];
if ( strtolower($inp) == "<select" ) {
echo ">" . $arr[$x][6];
} elseif ( strtolower($inp) == "<textarea" ) {
echo " cols=" . $arr[$x][2] . " rows=" . number_format($tamMax/$tamCampo,0,'.','') . ">";
} elseif ( strtolower($inp) == "<input" ){
if( $sTipo == "number" || $sTipo == "email" ){ $sTipo = "text"; }
echo " type=" . $sTipo . " size=" . $tamCampo ." maxlength=" . $tamMax . " value=" . $arr[$x][8] . ">";
}
if ( $inp == "<textarea" ) {
echo "</textarea>";
}
if ( $inp == "<select" ) {
echo "</select>";
}
echo "</td><td><span class=msg>" . $arr[$x][7] . "</span></td></tr>";
}
echo "<tr><td colspan=3 align=center><input class=post type=submit value=\"" . $btnAdd . "\"></td>";
echo "</table>";
echo "</form>";
closeQuadro();
} else {
echo $msgPermissao;
}
break;
Explicação:// Verifica permissão para a operação
if( $permiteAdd ){
.
.
.
} else {
echo $msgPermissao;
}
O código desta ação fica condicionado a uma verificação no parâmetro $permiteAdd, declarado no include ExemploDefinicao.inc. Se lá estiver declarado um valor "S" para este parâmetro, o restante da ação será permitido, senão será mostrada a mensagem $msgPermissao, também declarada no include de que falamos aqui.
// Titulos e cabeçalhos $operation = $operAdd; $description = $descAdd; require("libCabecalhoPadrao.php"); ?> <h2 class=tit>NOVO REGISTRO</h2> <h5 class=help>Entrada de Informações. Campos com <img src="Preencha.png"> são obrigatórios</h5> <?php openQuadro();
As variáveis $operation e $description são parâmetros do HTML contido no include libCabecalhoPadrao.php, cujo código repetiremos aqui:
<div class=h2><div class="btn b1"><?= $titulo ?> - <?= $operation ?></div></div>
<div class=h3><div class="btn b2"><?= $description ?> [<?= $_SERVER['REMOTE_ADDR'] .'-' . $_SERVER['SERVER_ADDR'] ?>]
<a class="btn" style="margin-left:50px;" href="?estilo=<?= $_GET['estilo'] ?>"><span class="btn a">TELA INICIAL</span></a>
</div>
</div>
O cabeçalho é feito à base de DIVs, pois são os containers mais flexíveis do HTML.Vamos ao trecho seguinte:
// Formulário de Preenchimento
echo "<form method=post action=?action=addsave&estilo=" . $_GET['estilo'] . " OnSubmit=\"return manda(this);\">";
echo "<table border=0 cellspacing=0>";
// Loop no esquema da estrutura de dados
for($x=0;$x<$NoCampos;$x++){
$sTipo = "";
$inp = "<input";
echo "<tr><td><label>" . $arr[$x][1] . "</label></td>";
echo "<td>";
// Ajuste do tipo, valor e tag do campo
$pl = new paramLine($arr,$x,"");
$inp = $pl->taginput;
$sTipo = $pl->tipocampo;
echo $inp;
echo " name=" . $arr[$x][0] . " id=" . $arr[$x][0];
// Obrigatoriedade do campo
if( $arr[$x][5] == "S" && $x > 0 ){
echo " class=obr ";
}
// Tipos de tags
$tamCampo = $arr[$x][2];
$tamMax = $arr[$x][3];
if ( strtolower($inp) == "<select" ) {
echo ">" . $arr[$x][6];
} elseif ( strtolower($inp) == "<textarea" ) {
echo " cols=" . $arr[$x][2] . " rows=" . number_format($tamMax/$tamCampo,0,'.','') . ">";
} elseif ( strtolower($inp) == "<input" ){
if( $sTipo == "number" || $sTipo == "email" ){ $sTipo = "text"; }
echo " type=" . $sTipo . " size=" . $tamCampo ." maxlength=" . $tamMax . " value=" . $arr[$x][8] . ">";
}
if ( $inp == "<textarea" ) {
echo "</textarea>";
}
if ( $inp == "<select" ) {
echo "</select>";
}
echo "</td><td><span class=msg>" . $arr[$x][7] . "</span></td></tr>";
}
echo "<tr><td colspan=3 align=center><input class=post type=submit value=\"" . $btnAdd . "\"></td>";
echo "</table>";
echo "</form>";
Este trecho desenha o formulário de entrada dos campos a serem preenchidos por meio do loop:
for($x=0;$x<$NoCampos;$x++){
.
.
.
}
O parâmetro $NoCampos é configurado no include ExemploDefinicao.inc.Tratamento dos campos
$sTipo = "";
$inp = "<input";
echo "<tr><td><label>" . $arr[$x][1] . "</label></td>";
echo "<td>";
// Ajuste do tipo, valor e tag do campo
$pl = new paramLine($arr,$x,"");
$inp = $pl->taginput;
$sTipo = $pl->tipocampo;
echo $inp;
echo " name=" . $arr[$x][0] . " id=" . $arr[$x][0];
// Obrigatoriedade do campo
if( $arr[$x][5] == "S" && $x > 0 ){
echo " class=obr ";
}
// Tipos de tags
$tamCampo = $arr[$x][2];
$tamMax = $arr[$x][3];
if ( strtolower($inp) == "<select" ) {
echo ">" . $arr[$x][6];
} elseif ( strtolower($inp) == "<textarea" ) {
echo " cols=" . $arr[$x][2] . " rows=" . number_format($tamMax/$tamCampo,0,'.','') . ">";
} elseif ( strtolower($inp) == "<input" ){
if( $sTipo == "number" || $sTipo == "email" ){ $sTipo = "text"; }
echo " type=" . $sTipo . " size=" . $tamCampo ." maxlength=" . $tamMax . " value=" . $arr[$x][8] . ">";
}
if ( $inp == "<textarea" ) {
echo "</textarea>";
}
if ( $inp == "<select" ) {
echo "</select>";
}
echo "</td><td><span class=msg>" . $arr[$x][7] . "</span></td></tr>";
}
A chave para a construção das entradas dos campos é o tipo do campo ($sTipo). Ele define o delimitador e as alterações que serão feitas no valor digitado para o campo, bem como a consistência a ser efetuada no mesmo.
Fechamento do formulário
echo "<tr><td colspan=3 align=center><input class=post type=submit value=\"" . $btnAdd . "\"></td>";
echo "</table>";
echo "</form>";
closeQuadro();
} else {
echo $msgPermissao;
}
À conclusão do formulário segue-se a mensagem de falta de permissão para a operação que fecha o:
if( $permiteAdd ){
Conclusão da ação
A conclusão desta ação é a instrução:
break;
Nenhum comentário:
Postar um comentário