» Créateur rapide de formulaires
Rédigé par :
Guillaume
Le : 14/12/2003 à 00:31
Hits : 8987
Le Créateur rapide de formulaires a pour but de vous faciliter la tâche pour la création de formulaires, bien évidement il n'est pas aussi personnalisable coté design (CSS, classes, identifiants, attributs HTML) que si il était fait à la main directement dans votre fichier, mais il suffit de rajouter dans le code de la fonction votre personnalisation ;-)
Par défaut, l'affichage de la mise en forme (grâce à un tableau HTML (<table>) est sur FALSE.
Le but est d'afficher dans $inputs les valeurs du type de formulaire, dans $names leurs noms, etc. séparé par une virgule entre les formulaires.
Un exemple : je veut un champ text (pseudo), une champ mot de passe (pass), et un bouton d'envoi de formulaire (Connexion) le tout mis en forme : <?php creation_form ('POST', 'connexion.php', '1,2,7', 'pseudo,pass,Connexion', '', TRUE); ?>
article_13.php
<?php
// ------------------------------------------------------------------------- //
// Créateur rapide de formulaires //
// ------------------------------------------------------------------------- //
// 14/12/2003 à 00h31 par Guillaume JIGUEL (guillaume@gphp.net) //
// ------------------------------------------------------------------------- //
// http://www.gphp.net/articles,13.php //
// ------------------------------------------------------------------------- //
// 1 text
// 2 password
// 3 hidden
// 4 file
// 5 reset
// 6 button
// 7 submit
// t-cols-row textarea
// i-source-alt
function creation_form ($method, $action, $inputs, $names, $values, $table=FALSE) {
// On définis une constante pour les retour chariots
define ('BR', "\r\n");
// Toutes les valeurs mises dans la fonction doivent être séparés et triés dans un tableau
$champs = explode (',', $inputs);
$noms = explode (',', $names);
$valeurs = explode (',', $values);
// Si vous avez demandez l'affichage de la <table> pour mise en ofrme , on affiche la balise d'ouverture <table>
if ($table == TRUE) echo '<table border="1">'.BR;
// On affiche la balise d'ouverture <form> + method et action
echo '<form method="'.$method.'" action="'.$action.'">'.BR;
// On analyse tout ça en parcourant l'array()
foreach ($champs as $key=>$nmr) {
// On attribut le code HTML requis pour les champs de formulaire + name + value
$input['type'][1] = '<input type="text" name="'.$noms[ $key ].'" value="'.$valeurs[ $key ].'" />';
$input['type'][2] = '<input type="password" name="'.$noms[ $key ].'" value="'.$valeurs[ $key ].'" />';
$input['type'][3] = '<input type="hidden" name="'.$noms[ $key ].'" value="'.$valeurs[ $key ].'" />';
$input['type'][4] = '<input type="file" name="'.$noms[ $key ].'" value="'.$valeurs[ $key ].'" />';
$input['type'][5] = '<input type="reset" value="'.$noms[ $key ].'" />';
$input['type'][6] = '<input type="button" value="'.$noms[ $key ].'" />';
$input['type'][7] = '<input type="submit" value="'.$noms[ $key ].'" />';
// Si on a demandé un textarea
if ( eregi('^t-', $nmr) ) {
// On dissocie les données afin d'afficher la longueur des cols et rows
$nbr = explode ('-', $nmr);
// On attribut le code HTML du textarea + cols + rows
$afficheInput = '<textarea name="'.$noms[ $key ].'" cols="'.$nbr[1].'" rows="'.$nbr[2].'">'.$valeurs[ $key ].'</textarea>';
}
elseif ( eregi('^i-', $nmr) ) {
// On dissocie les données afin d'afficher la source et la description
$nbr = explode ('-', $nmr);
// On attribut le code HTML de l'image + src + alt
$afficheInput = '<input type="image" src="'.$nbr[1].'" border="0" alt="'.$nbr[2].'" />'.BR;
}else{
// input présent dans l'array() : $input['type']
$afficheInput = $input['type'][ $nmr ];
}
// On fait la sélection des champs du formulaire, pour ne pas afficher d'Entête de rubrique en cas de reset, bouton, submit, image
if ( $nmr == 5 || $nmr == 6 ||$nmr == 7 || eregi('^i-', $nmr) ) $nomRub = ' ';
else $nomRub = ucfirst($noms[ $key ]);
// Si mise en forme avec la <table> on affiche les balises de lignes et colonnes (<tr>, <td>...)
if ($table == TRUE) {
echo '<tr>'.BR;
echo ' <td>'.$nomRub.'</td>'.BR;
echo ' <td>'.$afficheInput.'</td>'.BR;
echo '</tr>'.BR;
// Sinon on affiche le champ seul suivit d'un retour chariot.
}else{
echo $afficheInput.'<br />'.BR;
}
}
// Fermeture de la balise </form>
echo '</form>'.BR;
// Si mise en forme par <table>, on ferme la balise </table>
if ($table == TRUE) echo '</table>'.BR;
}
// Voilà si dessous un exemple d'utilisation du créateur de formulaire
creation_form ('POST', 'test.php', '1,t-30-5,7', 'nom,message,Envoyer', 'nom,message', TRUE);
?>
» Commentaires
Pas de commentaires.
Vous devez être connecté en tant que Membre pour pouvoir poster un commentaire, Inscrivez vous ici !