PHP Classes

File: example.php

Recommend this page to a friend!
  Classes of António Lourenço   Lou Form Builder   example.php   Download  
File: example.php
Role: Example script
Content type: text/plain
Description: Example to use
Class: Lou Form Builder
Generate HTML for form inputs with class functions
Author: By
Last change:
Date: 22 days ago
Size: 6,310 bytes
 

Contents

Class file image Download
<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title></title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
<?php

// --- Exemplo de como usar a classe ---

   
require_once 'html_class.php'; // Incluir a classe FormBuilder

   
$form = new FormBuilder();
   
$now = date('Y-m-d H:i:s'); // Example format: 2023-10-27 15:30:00

    // Iniciar o formulário com o método startForm
   
echo $form->startForm('/html/processar.php', 'post', ['id' => 'cadastro', 'class' => 'meu-form']);

   
// ... (campos nome, email, senha) ...
   
echo '<div>';
    echo
$form->label('nome', 'Nome de Usuário:');
    echo
$form->input('text', 'nome', '', ['id' => 'nome', 'placeholder' => 'Digite seu nome', 'required' => true, 'maxlength' => '50', 'class' => 'form-control']);
    echo
'</div>';

    echo
'<div>';
    echo
$form->label('data_nascimento', 'Data de Nascimento:');
    echo
$form->dateInput('data_nascimento', '', ['id' => 'data_nascimento', 'required' => true, 'class' => 'form-control']);
    echo
'</div>';

    echo
'<div>';
    echo
$form->label('email', 'Email:', ['class' => 'label-obrigatorio']); // Changed label 'for' and added class for required field
   
echo $form->input('email', 'email', '', ['id' => 'email','placeholder' => 'Digite seu email', 'required' => true, 'class' => 'form-control']);
    echo
'</div>';

    echo
'<div>';
    echo
$form->label('senha', 'Password:');
    echo
$form->input('password', 'senha', '', ['id' => 'senha','placeholder' => 'Digite sua senha', 'required' => true, 'class' => 'form-control']);
    echo
'</div>';

    echo
'<div>';
    echo
$form->label('senha_confirmacao', 'Confirmar Password:'); // Changed label 'for'
   
echo $form->input('password', 'senha_confirmacao', '', ['id' => 'senha_confirmacao','placeholder' => 'Digite novamente sua senha', 'required' => true, 'class' => 'form-control']);
    echo
'</div>';


    echo
'<div>';
    echo
$form->label('pais', 'País:'); // Add a label for the select
    // Define the options for the select dropdown
   
$paises = [
       
'' => 'Selecione um país...', // Optional placeholder
       
'BR' => 'Brasil',
       
'PT' => 'Portugal',
       
'US' => 'Estados Unidos',
       
'ES' => 'Espanha'
       
// Add more countries as needed
   
];
   
// Corrected call to the new select method
    // Pass the options array ($paises) as the second argument
    // Pass the attributes as the fourth argument (in an array)
   
echo $form->select('pais', $paises, '', ['id' => 'pais', 'required' => true, 'class' => 'form-control']);
    echo
'</div>';
  

    echo
'<div>';
    echo
$form->label('telefone', 'Telefone:'); // Changed label 'for' to match id
   
echo $form->input('telefone', 'telefone', '', ['id' => 'telefone','placeholder' => 'Insira telefone', 'required' => true, 'class' => 'form-control']);
    echo
'</div>';

   
// ... other fields ... Exemplo com 'form-control' e rows/cols para textarea
   
echo '<div>';
    echo
$form->label('mensagem', 'Comentário:'); // Changed label 'for' and text
   
echo $form->textarea('mensagem', '' , ['id' => 'mensagem', 'placeholder' => 'Digite um comentario', 'class' => 'form-control', 'rows' => 4]); // Changed name and id
   
echo '</div>';


   
//O input hidden não precisa de class="form-control" nem de um <div> visível ao redor dele, pois ele não é exibido.
   
echo '<div>';
   
// 1. Get the current date and time in a desired format
    // 2. Use 'current_datetime' (as a string) for the name
    // 3. Pass the $now variable as the value (3rd argument)
    // 4. Pass the array as the $attributes (4th argument)
    // Changed the name or choose a suitable name)
   
echo $form->input('hidden', 'data_hora', $now, ['id' => 'hidden_datetime', 'class' => 'form-control']);
    echo
'</div>';

   
// --- Rádios ---
   
echo '<div>';
    echo
'<p>Sexo:</p>'; // Mantém o título como block
    // Adiciona a classe 'radio-group' ao div que contém as opções
   
echo '<div class="radio-group">';
   
// Primeira opção (input + label)
   
echo $form->input('radio', 'sexo', 'masculino', ['id' => 'masculino']);
    echo
$form->label('masculino', 'Masculino'); // Não precisa mais do espaço inicial
    // Segunda opção (input + label)
   
echo $form->input('radio', 'sexo', 'feminino', ['id' => 'feminino']);
    echo
$form->label('feminino', 'Feminino');
    echo
'</div>'; // Fecha o div.radio-group
   
echo '</div>'; // Fecha o div container geral da seção

// --- Checkboxes (Exemplo: se quisesse na mesma linha, usaria a mesma classe 'radio-group') ---
echo '<div>';
echo
'<p>Escolha as linguagens de programação:</p>';
echo
'<div>';
// Para checkboxes em linhas separadas
// Aplicar display:inline ao label aqui se necessário, ou usar a classe .radio-group se quiser inline
echo '<div>';
echo
$form->input('checkbox', 'opcoes[]', 'cpp', ['id' => 'opcao_cpp']); // Valor e ID únicos
echo $form->label('opcao_cpp', ' C++');
echo
'</div>';
echo
'<div>';
echo
$form->input('checkbox', 'opcoes[]', 'php', ['id' => 'opcao_php']);
echo
$form->label('opcao_php', ' PHP');
echo
'</div>';
echo
'<div>';
echo
$form->input('checkbox', 'opcoes[]', 'java', ['id' => 'opcao_java']);
echo
$form->label('opcao_java', ' Java');
echo
'</div>';
echo
'<div>';
echo
$form->input('checkbox', 'opcoes[]', 'python', ['id' => 'opcao_python']);
echo
$form->label('opcao_python', ' Python');
echo
'</div>';

// Botão de envio
echo $form->input('submit', 'enviar', 'Cadastrar', ['class' => 'botao-principal']);
echo
$form->endForm();

// --- Campos adicionais ---
/*
echo '<br><br>';
echo $form->label('quantidade', 'Quantidade:');
echo $form->numberInput('quantidade', '1', ['id' => 'quantidade', 'min' => '1', 'max' => '10', 'class' => 'form-control']); // step="any" será adicionado automaticamente

echo $form->label('telefone_contato', 'Telefone:');
echo $form->telInput('telefone_contato', '', ['id' => 'telefone_contato', 'pattern' => '[0-9]{9,15}', 'class' => 'form-control']); // Usará o placeholder padrão se não for definido outro
*/
?>
</body>
</html>