radio checkbox list multilist password select button option optgroup ...
fieldset et legend pour regrouper plusieurs champs ensembles
HTML5 = datalist keygen output
<?php
// je défini mon formulaire avec des attributs 'en vrac'
$cond = array(
// un input TEXT classique
'nom' => array('type'=>'text', 'name'=>'nom', 'size'=>18, 'maxlength'=>20, 'value'=>'Visiteur', 'label'=>array('txt'=>'Nom : ')),
// un input de type PASSWORD
'pwd' => array('type'=>'password', 'name'=>'pwd', 'label'=>array('txt'=>'Mot de Passe : ')),
// une liste : SELECT --> option
'voiture' => array('type'=>'select', 'name'=>'voiture', 'value'=>5, 'label'=>array('txt'=>'Voiture : '),
'list' => array(1 => 'Renault', 2=> 'Citroen', 3 => 'Volswagen', 4 => 'Volvo', 5 => 'Fiat', 6 => 'Chevrolet', 7 => 'Toyota')),
// un SELECT avec des regroupements : optgroup
'pays' => array('type'=>'select', 'name'=>'pays', 'value'=>'FR', 'label'=>array('txt'=>'Pays : '),
'list' => array(
'Europe' => array('FR' => 'France', 'UK' => 'Royaume-Uni', 'ES' => 'Espagne'),
'Amérique' => array('US' => 'Etats Unis', 'MX' => 'Mexique', 'CA' => 'Canada'))
),
// des boutons RADIO
'sexe' => array('type'=>'radio', 'name'=>'sexe', 'list'=>array('M'=>'Masculin', 'F'=>'Féminin')),
// une série de 4 boutons CHECKBOX
'chkVelo' => array('type'=>'checkbox', 'name'=>'vehicule[]', 'label'=>array('txt'=>'J\'ai un vélo : ')),
'chkMoto' => array('type'=>'checkbox', 'name'=>'vehicule[]', 'label'=>array('txt'=>'J\'ai une moto : ')),
'chkVoiture' => array('type'=>'checkbox', 'name'=>'vehicule[]', 'label'=>array('txt'=>'J\'ai une voiture : ')),
'chkCamion' => array('type'=>'checkbox', 'name'=>'vehicule[]', 'label'=>array('txt'=>'J\'ai un camion : ')),
// une zone de texte libre : TEXTAREA
'texto' => array('type'=>'textarea', 'name'=>'texto', 'cols'=>60, 'rows'=>4, 'wrap'=>'virtual', 'value'=>''),
// un bouton simple : déclenche une action javascript sur le ''onclick''
'button' => array('type' => 'button', 'value' => 'Click Me !', 'onclick' => 'alert(\'Hello World\')'),
// un bouton SUBMIT pour soumission du formulaire
'submit' => array('type'=>'submit', 'name'=>'Submit', 'value'=>'Envoyer',
'label'=>array('txt'=>'Nom et message obligatoires.')),
// annuler toutes les valeurs du formulaire : RESET
'reset' => array('type'=>'reset', 'name'=>'Annuler', 'value'=>'Annuler le formulaire'),
// FIELDSET : regroupe plusieurs champs dans un encadré avec légende, préfixe et suffixe pour chaque champs inclu
'chkVehicule' => array('type' => 'fieldset', 'legend' => array('txt' => 'Choisir un ou plusieurs Véhicule(s)'),
'fields' => array('chkVelo', 'chkCamion', 'chkMoto', 'chkVoiture'),
'prefix' => 'il manque un nom ou un message
'; // on re-injecte les valeurs pour pas avoir à les re-saisir $myForm->setValues($myForm->getValues()); } else { // insérer le msg en bdd avec $myForm->getValues // ou chaque élément $myForm->url $myForm->email etc var_dump($myForm->getValues()); } } else if($myForm->isPosted()) { echo '' . $myForm->getError() . '
'; } // afficher le formulaire 'en vrac' si le CSS suffit à la mise en forme: echo $myForm; ?>