Le Form helper vous fournis des méthodes afin de vous assister lors de la création de formulaires. Celui-ci ne s'occupe pas de la validation ou du filtrage. Si vous souhaitez générer un formulaire avec de la validation et du filtrage, vous pouvez le faire avec la Librairie forge
Vous aurez besoin d'utiliser cette line afin de commencer le formulaire :
print form::open(string $submit, array $attr, array $hidden );
Ici, $submit est un lien relatif comme '/class/method' et $attr est un array avec attributs, du genre array('id' ⇒ 'forumid', 'class'⇒'login_form'). Ces trois derniers peuvent être vides aussi. SI vous laissez le premier à blanc(vide), le lien de validation sera la page d’où le formulaire à été exécuté. $hidden est un array de champs cachés de formulaires.
Vous pourriez vouloir ajouter des champs de formulaire comme vous le feriez en HTML, mais il existe une option pour les créer en php. Voila quelques exemples.
print form::dropdown($data, $options, $selected) print form::textarea($data) print form::input($data)
Ouvrir un formulaire afin d'envoyer des informations. Les paramètres sont:
Afin de pouvoir le formulaire, vous avez simplement besoin de:
print form::open()
Ceci utilise les valeur par défaut, en utilisant POST afin d'envoyer le formulaire a la page actuelle.
Afin d'ajouter des attributs:
// Envoie la page à: domain.tld/products/search.html // La classe CSS 'search_form' est appliquée print form::open('products/search', array('class'=>'search_form')); // Reste sur la page actuelle, et ajoute un champ d'input caché appelé 'type' ayant la valeur: 'product' print form::open(NULL, array(), array('type'=>'product')); // Envoyer un formulaire a la page actuelle en utilisant GET print form::open(NULL, array('method'=>'get'));
Ouvre un formulaire afin d'envoyer des données binaires via POST. Les paramètre dont on aura besoin sont:
Exemples:
// Opens multipart form with action set to current url print form::open_multipart();
Resultats en HTML
<form action="http://localhost/index.php/welcome" enctype="multipart/form-data" method="post">
Crèe un tag d'input de formulaire HTML. La valeur par défaut va a un type text. Les paramètres sont:
Exemple:
print form::input('field_name', 'field_value', ' style="text-align: right;"');
Résultat en HTML:
<input type="text" id="field_name" name="field_name" value="field_value" style="text-align: right;" />
Il n'est pas nécessaire d'utiliser tous les paramètres.
Exemple:
print form::input(); // N'utilise pas de paramètres print form::input('field_name'); // N'utilise qu'un paramètre - Pour le nom et l'id print form::input('field_name', 'field_value'); // Utilisez seulement 2 paramètres - Pour le nom, l'id et la valeur
Résultat in HTML:
<input type="text" id="" name="" value="" /> <input type="text" id="field_name" name="field_name" value="" /> <input type="text" id="field_name" name="field_name" value="field_value" />
Afin de créer un bouton de remise à zéro pour le formulaire, ajoutez l'attribut “type” et mettez-le à “reset”.
Exemple:
form::input(array('type'=>'reset','name'=>'reset'),"Clear Form");
Result in HTML:
<input type="reset" name="reset" value="Clear Form" />
'hidden' génère a un champ de formulaire caché Les paramètres sont:
Exemple:
// Veuillez noter que les déclarations() ne servent qu'a l'affichage. print form::hidden("fieldName","fieldValue"); $array = array('field1' => 'value1', 'field2' => 'value2'); print form::hidden($array);
En HTML cela ressemblera à:
<input type="hidden" name="fieldName" value="fieldValue" /> <input type="hidden" name="field1" value="value1" /> <input type="hidden" name="field2" value="value2" />
'password' génère un champ de formulaire de type mot de passe. Les paramètres dont on a besoin sont:
Exemple:
// Veuillez noter que les déclarations ()ne servent qu'à l'affichage print Kohana::debug(form::password("NomDuChamp","ValeurDuChamp")); print Kohana::debug(form::password("NomDuChamp","ValeurduChamp",' id="IdDuChamp"')); $array=array('name'=>'NomDuChamp','value'=>'ValeurDuChamp','id'=>'IdDuChamp','class'=>'formField'); print Kohana::debug(form::password($array));
En HTML cela correspondra à:
<input type="password" id="NomDuChamp" name="NomDuChamp" value="ValeurDuChamp" /> <input type="password" id="NomDuChamp" name="NomDuChamp" value="ValeurDuChamp"id="IdDuChamp" /> <input type="password" id="ValeurDuChamp" name="NomDuChamp" value="ValeurDuChamp" class="formField" />
Génère un tag de formulaire d'input HTML de type “file” pour les fichiers à upload:
Les paramètres sont:
Exemple
$attributs = array('nom' => 'fichier_1', 'class' => 'votre-classe'); echo form::upload($attributs, 'path/to/local/file')
Resultat en HTML:
<input type="file" name="fichier_1" value="path/to/local/file" class="votre-classe" />
Crèe un tag d'aire de texte (textarea) pour un formulaire de format HTML
print form::textarea(string/array $data, string $value)
Les paramètres sont:
Exemple
print form::textarea('field_name', 'field_value');
Résultat en HTML:
<textarea id="field_name" name="field_name">field_value</textarea>
L'utilisation d'un array est aussi possible pour le premier paramètre. Jetez un coup d'oeil à cet exemple :
print form::textarea(array('name' => 'field_name', 'value' => 'field_value', 'class' => 'our_class'));
Résultat in HTML:
<textarea id="field_name" name="field_name" class="our_class">field_value</textarea>
Creates a drop down selection box. Crée un boite de selection de type “drop down” (Exemple en bas) Les paramètres sont:
Exemple:
$selection = array('basic' =>'Basic', 'standard' => 'Standard', 'custom' => 'Custom'); // L'option 'standard' sera sélectionnée par défaut print form::dropdown('input_dropdown',$selection,'standard'); $selection = array('basic' =>'Basic', 'standard' => 'Standard', 'custom' => 'Custom', 'something' => 'Something'); print form::dropdown(array('name' => 'input_dropdown[]', 'multiple' => 'multiple', 'size' => 4), $selection, array('standard', 'basic')); $selection = array('basic' =>array('basic1' => 'Basic1', 'basic2' => 'Basic2'), 'standard' => 'Standard', 'custom' => 'Custom', 'something' => 'Something'); print form::dropdown(array('name' => 'input_dropdown[]', 'multiple' => 'multiple', 'size' => 6), $selection, array('standard', 'basic1'));
Résultat dans le navigateur:
Crée une boite de selection de type 'Cochez' Les paramètres sont:
Exemple:
print form::label('check_spam_box', 'Toujours m'envoyer du spam (Opt in): '); print form::checkbox('check_spam_box', 'send_spam'); print form::label('check_money_box', 'Ne jamais m'envoyer d'argent (Opt out): '); print form::checkbox('check_money_box', 'send_no_money', TRUE);
Résultas in HTML
<label for="check_spam_box">Toujours m'envoyer du spam (Opt in): </label> <input type="checkbox" id="check_spam_box" name="check_spam_box" value="send_spam" /> <label for="check_money_box">Ne jamais m'envoyer d'argent (Opt out): </label> <input type="checkbox" id="check_money_box" name="check_money_box" value="send_no_money" checked="checked" />
Résultat dans le navigateur:
Génère une boite de sélection de type 'radio' (Choisissez entre plusieurs options). Cela est similaire au checkbox, mais permet de faire des sélections multiples plus facilement.
Les paramètres sont:
Exemple:
print form::label('radio_beau_box', 'Je suis beau/belle: '); print form::radio('radio_beau_box', 'suis_beau').'<br />'; print form::label('radio_celibataire_box', 'Je suis célibataire: '); print form::radio('radio_celibataire_box', 'suis_celibataire', TRUE).'<br />'; print form::label('radio_riche_box', 'Je suis riche: '); print form::radio('radio_riche_box', 'suis_riche').'<br />';
Results in HTML
<label for="radio_beau_box">Je suis beau/belle: </label> <input type="radio" name="radio_beau_box" value="suis_beau" /><br /> <label for="radio_celibataire_box">Je suis célibataire: </label> <input type="radio" name="radio_celibataire_box" value="suis_celibataire" checked="checked" /><br /> <label for="radio_riche_box">Je suis riche: </label> <input type="radio" name="radio_riche_box" value="suis_riche" /><br />
Résultat dans le navigateur
Crée un bouton de type 'Envoyer' pour le formulaire
Les paramètres sont:
Exemple:
print form::submit('envoyer', 'Envoyer');
Results in HTML
<input type="submit" id="submit" name="envoyer" value="Envoyer />
Crée un bouton pour le formulaire. Notez que ceci n'est pas la même chose que le bouton associé à l'envoi, ou la remise à zéro du formulaire,
Les paramètres sont:
Exemple:
print form::button('bouton', 'Ne fait pas grand chose');
Résultats en HTML
<button type="button" id="button" name="bouton">Ne fait pas grand chose</button>
Crée une étiquette (label) pour un champ d'entrée de formulaire.
Les paramètres nécessaires sont:
Exemple:
print form::label('imageup', 'Upload d'Images');
Résultats en HTML
<label for="imageup">Upload d'Images</label>
Returns an attribute string, from an array of HTML attributes in key/value format, sorted by form attributes first.
The parameters are:
Example:
print form::attributes(array('id' => 'input_name', 'class' => 'submission'));
Outputs
id="input_name" class="submission"
Crée un tag d'ouverture pour un fieldset. L’élément HTML fieldset est utilisé logiquement afin de regrouper plusieurs éléments dans un formulaire et dessine une boite autour d'eux.
Les paramètres sont:
Exemple:
print form::open_fieldset(array('class' => 'important'));
Résultats en HTML
<fieldset class="important">
Génère un tag afin de fermer un fieldset
Exemple:
print form::close_fieldset();
Résultats en HTML
</fieldset>
Crée une légende afin de décrire un fieldset.
Les paramètres sont:
Exemple:
print form::legend('Plus à propos de vous', array('id' => 'plus_infos'));
Résultats en HTML
<legend id="plus_infos">Plus à propos de vous</legend>