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

Zend_Form PHP Discussion :

Validation W3C [ZF 1.9]


Sujet :

Zend_Form PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2009
    Messages : 115
    Par défaut Validation W3C
    Bonjour à tous.

    Ça fait un moment que je cherche la solution sur le net mais je n'ai pas trouvé. Et j'espère sincèrement que vous allez pouvoir m'aider. Même un petit peu.

    Il y a certaines parties de Zend_Form qui ne sont pas valide W3C voilà un exemple :
    Code : 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
     
    $form = new Zend_Form;
    $form->setAction('/resource/process')
        ->setMethod('post');
     
    $check = new Zend_Form_Element_MultiCheckbox('foo', array(
    'multiOptions' => array(
        'foo' => 'Foo Option',
        'bar' => 'Bar Option',
        'baz' => 'Baz Option',
        'bat' => 'Bat Option',
    )));
    $check->setValue(array('bar', 'bat'));
    $check->setLabel('check');
     
    $form->addElements(array($check));
     
    echo $form;
    Ce qui donne en HTML ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <form enctype="application/x-www-form-urlencoded" action="/resource/process" method="post"><dl class="zend_form">
    <dt id="foo-label"><label for="foo" class="optional">check</label></dt> <---- ERROR
    <dd id="foo-element">
    <label for="foo-foo">
    <input type="checkbox" name="foo[]" id="foo-foo" value="foo" />Foo Option</label><br />
    <label for="foo-bar"><input type="checkbox" name="foo[]" id="foo-bar" value="bar" checked="checked" />Bar Option</label><br />
    <label for="foo-baz"><input type="checkbox" name="foo[]" id="foo-baz" value="baz" />Baz Option</label><br />
    <label for="foo-bat"><input type="checkbox" name="foo[]" id="foo-bat" value="bat" checked="checked" />Bat Option</label>
    </dd></dl></form>
    Ce n'est pas valide parce que W3C dit que for="foo" n'a pas de référence. Seriez-vous m'expliquer comment régler ce problème ?

    Merci d'avance
    Cordialement.

  2. #2
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    D'apres w3c, voici la dtd du tag label :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <!ELEMENT LABEL - - (%inline;)* -(LABEL) -- form field label text -->
    <!ATTLIST LABEL
      %attrs;                              -- %coreattrs, %i18n, %events --
      for         IDREF          #IMPLIED  -- matches field ID value --
      accesskey   %Character;    #IMPLIED  -- accessibility key character --
      onfocus     %Script;       #IMPLIED  -- the element got the focus --
      onblur      %Script;       #IMPLIED  -- the element lost the focus --
      >
    En gros, for est un IDREF, il doit donc avoir un id avec le meme nom dans le document, normalement a l'interieur de ses balises, comme dans les lignes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <label for="foo-bar"><input type="checkbox" name="foo[]" id="foo-bar" value="bar" checked="checked" />Bar Option</label>
    Donc si tu veux vraiment être conforme à w3c, tu retires le for qui n'est pas obligatoire (implied), soit tu ajoute un element avec un id correspondant au for.

    En espérant avoir bien répondu a ta question,
    bon courage et bonnne soirée !
    Z.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2009
    Messages : 115
    Par défaut
    Merci Zwiter,

    Mais je n'arrive pas à enlever le for="foo" avec Zend_Form. Est ce que tu vois ?

  4. #4
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    Quasi inexistante mes connaissances en Zend sont, sur ce pointje ne puis t'aider.
    Uniquement lire les dtd je sais.
    Z.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2009
    Messages : 115
    Par défaut
    Merci de ton aide Zwiter.

    Je n'ai pas encore trouver la solution. Je cherche l'endroit ou est definit par défaut IDREF for dans le librairie de Zend.

    Personne de peut m'aider sur ce sujet ?

  6. #6
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Bonjour,

    C'est le décorateur 'Label' qui est à l'origine de cet attribut 'for'.

    Par défaut, il utilise l'identifiant de l'élément comme cible. Il est toutefois possible de le modifier en utilisant la méthode setId() de ce décorateur...

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

Discussions similaires

  1. [XHTML] Validation W3C
    Par Mister Nono dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 05/12/2005, 14h34
  2. [HTML] URLs avec variable et validation W3C
    Par pirouette_07 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 11/10/2005, 11h27
  3. validation w3c et javascript: erreur?
    Par stoyak dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/08/2005, 14h59
  4. [HTML / Viewpoint / Valid W3C] Problème de lecture
    Par zebden dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 01/02/2005, 11h15

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