IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Ajouter un attribut a un formulaire grâce une class php


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 167
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 167
    Par défaut Ajouter un attribut a un formulaire grâce une class php
    Bonjour,

    J'avais utiliser cette class que j'avais trouvé en 2011. Mais je ne sais pas d'ou.
    J'aimerais l'utilisée car elle est pas mal, sauf qu'elle me semble pas complete

    En gros elle fonctionne comme cela.
    Pour créer un formulaire je dois ajouter évidement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <form id="form1" name="form1" method="post" action="">
    </form>
    Pour ajouter un champs textarea, je le fait comme ceci

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    	$labelName = new Form('label','comment','toto','comment','class',1);
    	$labelName->title = 'Observations';
    	$labelName->Display();
     
    	$name = new Form('textarea','comment',$labelName->title,'comment','class','minDigit:2,strip_tags:');
            $name->type = 'textarea';
            $name->value = htmlspecialchars($post['comment']);
            $name->Display();
    ?>

    Ce qui va afficher ceci
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <label class="class" id="comment" for="comment">Observations <span class="mandatory" style="color:#ff0000">*</span> </label>
    <textarea id="comment" name="comment" class="class"></textarea>

    Le problème est que j'aimerais ajouter cols et rows pour avoir ceci

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <textarea id="comment" cols="7" rows="10" name="comment" class="class"></textarea>

    Je vais voir ici le constructeur
    qui me permet de definir le type, la class, le nom l'ID, les validation.

    Par contre, je ne comprends pas comment cette fonction est appelé https://github.com/pierrot10/php-for...class.php#L250.

    Dans cette fonction, je retrouve une array où je vois bien cols et rows
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    $attributList =array(
     			'accesskey',
    			 'cols',
    			 'dir',
    			 'disabled',
    			 'lang',
    			 'onblur',
    			 'onchange',
    			 'onclick',
    			 'ondblclick',
    			 'onfocus',
    			 'onkeydown',
    			 'onkeypress',
    			 'onkeyup',
    			 'onmousedown',
    			 'onmousemove',
    			 'onmouseout',
    			 'onmouseover',
    			 'onmouseup',
    			 'onselect',
    			 'readonly',
    			 'rows',
    			 'style',
    			 'tabindex',
    			 'title',
    			 'wrap'
    		);

    Puis ici, ile va construire le textarea https://github.com/pierrot10/php-for...class.php#L279
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    echo '<textarea id="'.$this->id.'" name="'.$this->name.'" class="'.$this->class.'"';
     
    			//Affiche les attributs choisis et s'ils sont listés dans $attributList, et ne sont pas vides
    			foreach($this as $attribut => $val){
    				if(in_array($attribut,$attributList) AND !empty($val)){
    					echo $attribut = $attribut.'="'.$val.'" ';
    				}
    			}			
     
    			echo '>'.$this->value.'</textarea>';

    Ce que je ne comprends pas est comment je peux ajouter cols et rows à partir de là
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    	$name = new Form('textarea','comment',$labelName->title,'comment','class','minDigit:2,strip_tags:');
            $name->type = 'textarea';
            $name->value = htmlspecialchars($post['comment']);
            $name->Display();
    ?>

    Dans la première ligne, ça me semble pas possible, car le constructeur ne le permet pas, n'est-ce pas?
    et ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $name->attibut = 'textarea';
    ca ne marchera pas.

    Je me demande alors comment je peux le faire?

    Il y a aussi ceci SetAttributToAnOption, mais comment puis-je l'utiliser???

    Pourriez-vous m'éclairecir?

    Milles mercis

  2. #2
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    Je ne l'ai pas testé mais en regardant rapidement le code de la classe, je remarque deux choses:
    • Tous les attributs html possibles et imaginables sont des propriétés de la classe.
    • Elles sont toutes en protected, mais plus loin on trouve la méthode magique __set qui permet de les modifier.
    Donc à ta place je tenterai un simple $name->cols="7";.

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 167
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 167
    Par défaut
    Salut
    Merciii, c'est bien cela.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.x] valider un formulaire grâce à une URL
    Par brisko dans le forum Symfony
    Réponses: 15
    Dernier message: 16/01/2014, 12h08
  2. Réponses: 2
    Dernier message: 20/02/2013, 16h39
  3. [AC-2010] Ajouter record d'un sous formulaire dans une autre table
    Par wisemanvsfatboy dans le forum VBA Access
    Réponses: 3
    Dernier message: 21/02/2011, 09h01
  4. Réponses: 1
    Dernier message: 22/06/2007, 15h40
  5. [VB6]Enumérer les attributs et les méthodes d'une classe
    Par HPJ dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 04/05/2004, 18h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo