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