FormConstructor: Formulário Construído por Variável
Publicado por EVERTON DA ROSA 26/02/2007
[ Hits: 6.640 ]
Homepage: http://everton3x.github.io
Este script PHP contém uma função que constrói um formulário com base em informações passadas em uma variável. É um pouco complexo para montar a variável, mas é só seguir a existente no modelo. Depois ele monta o formulário.
Muito interessante para quem utiliza muitos formulários e deseja ou faz freqüentes mudanças de formatação e layout. Nesse caso, é só modificar a formatação direto na função.
Página forms.php que armazena as variáveis: <? $form1=array( //Contém a tag form "title"=>"Título do formulário", "name"=>"f_input.php", "action"=>"acao.php", "method"=>"get", "fieldsets"=>array( //Contém as tags fieldset array(//fieldset 1 "title"=>"Fieldset 1", "id"=>"fieldset1", "elements"=>array( //Array contendo os elementos do fieldset array( "field"=>"input",//contém o tipo de campo "label"=>"Campo 1", //contém a legenda que vai pertencer ao campo "name"=>"campo1", "type"=>"text", "value"=>"Texto do campo", "size"=>"50" ),//fim campo1 array( "field"=>"input", "label"=>"Campo 2", "name"=>"campo2", "type"=>"password", "value"=>"Texto do campo", "size"=>"50" ),//fim campo2 array( "field"=>"input", "type"=>"checkbox", "label"=>"Campo 3", "name"=>"campo3", "value"=>"3" ),//fim campo3 array( "field"=>"input", "type"=>"checkbox", "label"=>"Campo 4", "name"=>"campo4", "value"=>"4", "checked"=>"true" ),//fim campo4 array( "field"=>"textarea", "label"=>"Campo 5", "name"=>"campo5", "cols"=>"40", "rows"=>"10", "value"=>"Conteúdo do campo 5" ),//fim campo 5 array( "field"=>"select", "label"=>"Campo 6", "name"=>"campo6", "options"=>array(//array contendo as opções no formato value,selected,rótulo, separados por ponto-e-vírgula. Para as opões não selecionadas, coloque um espaçoem branco entre os ponto-e-vírgula "0; ;Zero", "1;selected;Um", "2; ;Dois", "3; ;Três" )//fim array options )//fim campo6 )//fim array elements ),//fim do fieldset1 array(//fieldset 1 "title"=>"Fieldset 2", "id"=>"fieldset2", "elements"=>array( //Array contendo os elementos do fieldset array( "field"=>"input",//contém o tipo de campo "label"=>"Campo 1", //contém a legenda que vai pertencer ao campo "name"=>"campo1", "type"=>"text", "value"=>"Texto do campo", "size"=>"50" ),//fim campo1 array( "field"=>"input", "label"=>"Campo 2", "name"=>"campo2", "type"=>"password", "value"=>"Texto do campo", "size"=>"50" ),//fim campo2 array( "field"=>"input", "type"=>"checkbox", "label"=>"Campo 3", "name"=>"campo3", "value"=>"3" ),//fim campo3 array( "field"=>"input", "type"=>"checkbox", "label"=>"Campo 4", "name"=>"campo4", "value"=>"4", "checked"=>"true" ),//fim campo4 array( "field"=>"textarea", "label"=>"Campo 5", "name"=>"campo5", "cols"=>"40", "rows"=>"10", "value"=>"Conteúdo do campo 5" ),//fim campo 5 array( "field"=>"select", "label"=>"Campo 6", "name"=>"campo6", "options"=>array(//array contendo as opções no formato value,selected,rótulo, separados por ponto-e-vírgula. Para as opões não selecionadas, coloque um espaçoem branco entre os ponto-e-vírgula "0; ;Zero", "1;selected;Um", "2; ;Dois", "3; ;Três" )//fim array options )//fim campo6 )//fim array elements )//fim do fieldset2 )//fim array fieldsets )// fim array form1; ?> Página pagina.php, que contém as funções para montar o formulário: <? include('forms.php'); function fieldConstructor($fields){ while(list($n,$tag)=each($fields)){ $type=$tag[field]; $campos.='<label for="'.$tag[name].'">'.$tag[label].': </label>'; if($type=='textarea'){ $campos.="<$type "; while(list($prop,$value)=each($tag)){ if($prop!="field" && $prop!="value"){ $campos.=$prop.'="'.$value.'" '; }else{} } $campos.='>'.$tag[value].'</textarea><br>'; }elseif($type=='select'){ $options=$tag[options]; $campos.="<$type "; while(list($prop,$value)=each($tag)){ if($prop!="field" && $prop!="options"){ $campos.=$prop.'="'.$value.'" '; }else{} } $campos.=">"; while(list($nn,$o)=each($options)){ $oo=explode(';',$o); $value=$oo[0]; $selected=$oo[1]; $label=$oo[2]; $campos.='<option value="'.$value.'" '.$selected.'>'.$label.'</option>'; } $campos.='</select><br>'; }else{ $campos.="<$type "; while(list($prop,$value)=each($tag)){ if($prop!="field"){ $campos.=$prop.'="'.$value.'" '; } } $campos.="><br>"; } } return $campos; } function formConstructor($form){ //Monta o cabeçalho da página/formulário $f_title=$form[title]; $print="<h1>$f_title</h1><hr>"; //Monta a tag form $print.="<form "; while(list($key,$val)=each($form)){ if($key!="fieldsets"){ $print.=$key.'="'.$val.'" '; }else{} } $print.='>'; //Monta os fieldsets $fieldsets=$form[fieldsets]; while(list($k,$atual)=each($fieldsets)){ $print.='<fieldset '; while(list($key,$val)=each($atual)){ if($key!="elements"){ $print.=$key.'="'.$val.'" '; }else{} } $print.='>'; $print.="<legend>".$atual[title]."</legend>"; $print.=fieldConstructor($atual[elements]);//Insere os campos $print.='</fieldset>'; } //Fecha o formulário e imprime a página $print.='<input name="voltar" type="button" onClick="javascript:history.back();" value="Voltar"><input name="limpar" type="reset" value="Limpar"><input name="enviar" type="submit" value="Enviar">'; $print.='</form>'; echo $print; } formConstructor($form1); ?>
phpAutoConf :: gerencie configurações de modo fácil e automático
Calsse eveFile: manipulação de arquivos
Nenhum coment�rio foi encontrado.
Conciliando o uso da ZRAM e SWAP em disco na sua máquina
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Realizar overclock no Miyoo Mini (plus ou normal)
Otimização de memória para máquinas modestas
linux mint reconhece microfone de lapela como fone de ouvido sem micro... (0)
Dúvidas sobre a originalidade de conteúdos online (10)
Erro de interface de Rede no Virt Manager dentro Debian 13 KDE (12)
Monitoramento pfsense com zabbix (3)
Google Crhome não abre desde que eu atualizei pelo "program... (13)