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

Bibliothèques et frameworks PHP Discussion :

[PEAR][HTML_QuickForm] Champs hidden


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 115
    Par défaut [PEAR][HTML_QuickForm] Champs hidden
    Salut à tous,

    Je trouve vraiment cette librairie au poil
    mais étant débutant avec ces packages, je galère un peu sur certains trucs .
    Si créer un quickForm est tout de meme très simple, ajouter certains éléments ne le sont pas (logik, je m'y met juste !)

    j'ai bien cherché sur le web, et dans ce forum, j'ai trouvé déjà quelques réponses à certains problèmes, mais pour la gestion des champs hidden, les solutions proposées ds ce forum ne fonctionnent pas.
    j'ai aussi regardé le formulaire donné en exemple dans le package contact.php, mais en le déclinant cela ne fonctionne pas.

    voici mon code :
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    require_once "HTML/QuickForm.php";
    $form = new HTML_QuickForm('form', 'post', 'http://www.monsite/inscription.php');
     
    $form->addElement('text', 'Nom', 'Nom /<br />Last name : ');
        $form->addElement('text', 'Prenom', 'Pr&eacute;nom /<br />First name : ');    
        $options = array(
            'language'  => 'fr',
            'format'    => 'dmY',
            'minYear'   => 1930,
            'maxYear'   => 2000
        );
     
        $form->addElement('date', 'DateN', '<span class="obligatoire">*</span>Date de naissance /<br />Date of birth : ', $options);
    	$form->addElement('text', 'Cp', '<span class="obligatoire">*</span>Code postal /<br />Zipcode :');
    	$form->addElement('text', 'Ville', 'Ville /<br />City :');
    	$form->addelement('text', 'Pays', 'Pays /<br />Country : ');
    	$form->addElement('text', 'Email', 'e-mail : ');
    	$form->addElement('text', 'Email2', 'Confirmez votre e-mail /<br />Confirm : ');
     
    	$Check[] = & HTML_QuickForm::createElement('advcheckbox', 'langfr', ' ', 'Français', '', '1');
    	$Check[] = & HTML_QuickForm::createElement('advcheckbox', 'languk', ' ', 'English', '', '2');
    	$form->addGroup($Check, 'Lang', 'Choix de la langue /<br />Choose your language : ', '&nbsp;&nbsp;');
     
        $form->addElement('submit', 'wanewsletter', 'Valider/Valid');
     
    	$form->addElement("hidden", 'format', '2');
    	$form->addElement("hidden", 'liste', '1');
    	$form->addElement("hidden", 'action', 'inscription');
     
    	$form->addRule('Nom', 'Vous devez saisir votre Nom', 'required', '', 'client');
    (...)
     
    if ($form->validate()) 
    	{
    		$form->process('', false);
    	}
    	else
    	{
    		$form->display();
    	}
    c'est mon 1er souci les 3 variables ($format, $ liste, et $action) sensées être générées via le form, ne passent pas le submit.
    j'ai donc des erreurs dans la suite de la procédure.

    Merci de votre aide , 3 jours que je suis dessus !

    ++ all

    Padaben

  2. #2
    Membre éclairé Avatar de calogerogigante
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Avril 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2003
    Messages : 608
    Par défaut
    J'ai fait un petit test avec ceci :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title>formulaire</title>
    </head>
    <body>
    <?php
    set_include_path(get_include_path().";C:\wamp_sites\pearsmar_001\pear");
    require_once("HTML/QuickForm.php");
     
    $form = new HTML_QuickForm('frmTest', 'post');
    $form->addElement('text', 'Pseudo', 'Votre pseudo : ');
    $form->addElement('text', 'Nom', 'Votre nom : ');    
    $form->addElement('text', 'Email', 'Votre adresse email : ');    
    $options = array(
            'language'  => 'fr',
            'format'    => 'dMY',
            'minYear'   => 2001,
            'maxYear'   => 2005
        );
    $form->addElement('date', 'date', 'votre date de naissance : ', $options);
    $form->addRule('Pseudo', 'Vous devez saisir un pseudo', 'required', '', 'client');
    $form->addRule('Nom', 'Vous devez saisir un nom', 'required', '', 'client');
    $form->addRule('Email', 'Vous devez saisir une adresse Email', 'required', '', 'client');
    $form->addRule('Pseudo', 'Votre pseudo doit avoir entre 6 caractères et 10 caractères', 'rangelength', array(6,10), 'client');
    $form->addRule('Email', 'Vous devez saisir une adresse email valide', 'email', '', 'client');
    $form->applyFilter('Nom','trim') ;
    $form->applyFilter('Pseudo','trim') ;
    $form->setRequiredNote('<span style="color: #ff0000">*</span> = champs obligatoires');
    $form->setJsWarnings('Erreur de saisie','Veuillez corriger');
    $form->addElement('reset', 'bouton_clear', 'Effacer');
    $form->addElement('submit', 'bouton_effacer', 'Envoyer');
    $form->addElement('hidden', 'mavaleurcachee', 'oui');
     
    if ($form->validate())
    {
      $form->process('traiteDonnees', false);
    }
    else
    {
      $form->display();
    }
     
    function traiteDonnees ($values)
       {
       echo "<pre>";
       var_dump($values);
       echo "</pre>";
       }
     
    ?>
    </body>
    </html>
    La valeur du champ hidden est bien envoyée aussi (fait un test, rempli ce formulaire et tu verras le détail du tableau $values)...

    J'inspecte encore ton code et je le teste pour essayer de voir d'où ça peut provenir...

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 115
    Par défaut suite
    Trop MErci

    je regarde cela et te dis.

    bon code

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 115
    Par défaut
    Salut !!!

    Alors voilà, j'y crois pas mais voilà, j'ai trouvé !

    4 jours dessus, à refaire chercher tenter de comprendre d'ou vient l'erreur, et comme bien souvent, le nez ds l'guidon on voit pas tout!

    ET bien tout simplement il ne faut pas mettre de double quote dans les () de addElement.
    donc au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $form->addElement("hidden", 'action', 'inscription');
    il faut tout bonnement mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $form->addElement('hidden', 'action', 'inscription');
    c'est aussi simple et con que cela.
    que les pros PEAR me corrigent si je me trompe, bien entendu.

    Merci à toi calogerogigante pour ton aide, j'ai trouvé la différence en essayant ton script.

    J'ai aussi un autre souci mais qui vient d'un autre package, je reposte quelque chose demain

    [edit]
    Alors ca fonctionne dans une page seule, mais dès que je le couple à mon script de newsletter, ca ne fonctionne plus...
    il parrait que la nuit porte conseil !![/edit]

    MErci

    ++
    PAdaben

  5. #5
    Membre éclairé Avatar de calogerogigante
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Avril 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2003
    Messages : 608
    Par défaut
    Content de voir que tu as pu avancer un peu...

    Si cela ne marche pas entre plusieurs pages, il faut peut-être que tu regardes au niveau de la portée de tes variables ??? Enfin, c'est une idée comme ça, pense à "global"...

    Donne un peu plus de code peut-être sur le traitement de tes variables...
    ???

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 115
    Par défaut
    Salut

    un peu plus de code voudrait dire en coller beaucoup.
    connais tu le script de newsletter WANEWSLETTER ?
    il est vraiment super bien et en openSource ( Merci Bobe)
    Je désire donc modifier le formulaire de base et passer à un formulaire en PEAR.
    le script est relativement complexe et complet, difficile donc d'en mettre plus sans en mettre trop.
    je me remet dessus dans un petit moment, j'ai quelques autres chats à fouter ce matin

    Par rapport à la portée de variables, peut etre que c'est une idée oui.
    En effet, le forumlaire n'envoie pas sur lui meme, il envoie à une page qui détermine où rediriger le script/internaute en fonction de ce qui a été entré .
    et le traitement se fait dans des includes compris dans des class .

    [edit] ce que je ne comprend pas, c'est que il n'y a apparement que les champs hidden qui ne passent pas d'une page à l'autre.
    et si avec un formulaire classique ca fonctionne, pourkoi cela ne fonctionne pas avec un quickForm ? [/edit]

    Qu'en dit tu ?

    Merci

    ++

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

Discussions similaires

  1. [PEAR][HTML_QuickForm] Editeur Tinymce pour les champs Textarea
    Par victoires dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 19/11/2012, 11h13
  2. [PEAR][HTML_QuickForm] Champ hidden dans HTML_QuickForm
    Par stitch dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 19/03/2012, 11h23
  3. probleme formulaire et un champ hidden
    Par amigauss dans le forum Langage
    Réponses: 8
    Dernier message: 26/01/2006, 17h50
  4. remplir un formulaire qui se met dans un champ hidden
    Par cecileb dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 07/09/2005, 16h37
  5. Passage de paramètres dans champ hidden
    Par benassis dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 27/05/2005, 01h22

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