Form Helper (L'aide au formulaires)

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

Pour commencer

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.

Ajouter des champs

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)

Méthodes

open()

Ouvrir un formulaire afin d'envoyer des informations. Les paramètres sont:

  • [string] (optionnel) L'URI d'un agent de validation de formulaire (Valeur par défaut est le lien actuel)
  • [array] (optionnel) array d'attributs HTML (Valeur par défaut à la method=post)
  • [array] (optionnel) paramètres pour les champs cachés à créer immédiatement après le tag “form”

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'));

open_multipart()

Ouvre un formulaire afin d'envoyer des données binaires via POST. Les paramètre dont on aura besoin sont:

  • [string] (optionnel) L'URI d'un agent de validation de formulaire (Valeur par défaut est le lien actuel)
  • [array] (optionnel) array d'attributs HTML (Valeur par défaut à la method=post)
  • [array] (optionnel) paramètres pour les champs cachés à créer immédiatement après le tag “form”

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">

input()

Crèe un tag d'input de formulaire HTML. La valeur par défaut va a un type text. Les paramètres sont:

  • [string]/[array] data input name and id or an array of HTML attributes
  • [string] Valeur d'input, lorsque vous utilisez un nom
  • [string] texte extra de type string attaché à la fin des attributs.
  • [bool] encode une entité html existante (Valeur par défaut TRUE)

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()

'hidden' génère a un champ de formulaire caché Les paramètres sont:

  • [string]/[array] les données pour les attributs de key
  • [string] Valeur du champ – Valeur par défaut = ””

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()

'password' génère un champ de formulaire de type mot de passe. Les paramètres dont on a besoin sont:

  • [string]/[array] Les données pour les attributs clés
  • [string] La valeur du champ – Par défaut = ””
  • [string] Le texte extra de type string à ajouter à la fin des attributs – Valeur par défaut = ””

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" />

upload()

Génère un tag de formulaire d'input HTML de type “file” pour les fichiers à upload:

Les paramètres sont:

  • [string]/[array] - Nom d'attribut ou Array d'attributs
  • [string] - Valeur d'attribut [Optionnel]
  • [string] - extra additionel [Optionnel]

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" />

textarea()

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:

  • [string]/[array] Le nom de l'aire de texte, ou un array d'attributs HTML
  • [string] La valeur du textarea, lorsque vous utilisez un nom
  • [string] Phrase extra attachée aux attributs
  • [bool] Crypte les entités html existantes. (Valeur par défaut TRUE)

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>

dropdown()

Creates a drop down selection box. Crée un boite de selection de type “drop down” (Exemple en bas) Les paramètres sont:

  • [string|array] Nom d'input ou un array d'attributs HTML
  • [array] Les options de sélection, lorsque vous utilisez un nom d'input
  • [string|array] L'option ou un array d'options à sélectionner par défaut
  • [string] Phrase extra à ajouter à la fin des attributs HTML – Valeur par défaut = ””

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:

checkbox()

Crée une boite de selection de type 'Cochez' Les paramètres sont:

  • [string/array] Nom d'input ou un array d'attributs HTML
  • [string] Valeur d'input value, lorsque vous utilisez un nom d'inpût
  • [boolean] Fait que la boite de selections soit checkée par défaut
  • [string] Une phrase supplémentaire à ajouter à la fin des attributs (Valeur par défaut = '')

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:

radio()

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:

  • [string/array] Nom d'input ou un array d'attributs HTML
  • [string] Valeur d'input , lorsque vous utilisez un nom
  • [boolean] Fait que le 'radio' soit sélectionné par défaut
  • [string] Une phrase à ajouter à la fin des attributs – Valeur par défaut

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




submit()

Crée un bouton de type 'Envoyer' pour le formulaire

Les paramètres sont:

  • [string/array] Nom d'input name ou un array d'attributs HTML
  • [string] Valeur d'input, lorsque vous utilisez un nom
  • [string] Une phrase à ajouter à la fin des attributs

Exemple:

print form::submit('envoyer', 'Envoyer');

Results in HTML

<input type="submit" id="submit" name="envoyer" value="Envoyer />

button()

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:

  • [string/array] Nom d'input ou un array d'attributs HTML
  • [string] Valeur d'input, lorsque vous utilisez un nom
  • [string] Une phrase à ajouter à la fin des attributs/

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>

label()

Crée une étiquette (label) pour un champ d'entrée de formulaire.

Les paramètres nécessaires sont:

  • [string/array] L’étiquette “for” (pour) le nom ou un array d'attributs HTML
  • [string] Le texte de l'étiquette ou du HTML
  • [string] Une phrase à ajouter à la fin des attributs.

Exemple:

print form::label('imageup', 'Upload d'Images');

Résultats en HTML

<label for="imageup">Upload d'Images</label>

attributes()

Returns an attribute string, from an array of HTML attributes in key/value format, sorted by form attributes first.

The parameters are:

  • [array] HTML attributes array

Example:

print form::attributes(array('id' => 'input_name', 'class' => 'submission'));

Outputs

id="input_name" class="submission"

open_fieldset()

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:

  • [array] un array d'attributs HTML
  • [string] Une phrase à ajouter à la fin des attributs.

Exemple:

print form::open_fieldset(array('class' => 'important'));

Résultats en HTML

<fieldset class="important">

close_fieldset()

Génère un tag afin de fermer un fieldset

Exemple:

print form::close_fieldset();

Résultats en HTML

</fieldset>

legend()

Crée une légende afin de décrire un fieldset.

Les paramètres sont:

  • [string] Texte de légende ou du HTML
  • [array] un array d'attributs HTML
  • [string] Une phrase à ajouter à la fin des attributs

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>

close()

Afin de fermer le formulaire, vous avez simplement besoin de:

print form::close()

Ou vous pouvez définir un paramètre:

print form::close('</div>')

Résultat in HTML:

</form></div>
helpers/form.txt · Dernière modification: 15/03/2011 21:14 par alban
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0