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] Utilisation de AddRule()


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre confirmé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Points : 503
    Points
    503
    Par défaut [PEAR][HTML_QuickForm] Utilisation de AddRule()
    Bonjour,

    Je n'arrive pas à mettre en place AddRule(), j'ai pourtant regardé au préalable les tutos de developpez.net avant de poster ce message :

    Le AddRule n'est pas pris en compte et au click sur le bouotn submir , je passe sur la seconde page affiché par $tpl->display("sc_conf.ihtml");

    J'ai essayé AddRule avec "uploadedfile" et "required" afin de controler qu'un fichier à uploader à bien été sélectionné.

    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
    <?
    	#Pear library
    	require_once "HTML/QuickForm.php";
    	require_once 'HTML/QuickForm/select.php';
    	require_once 'HTML/QuickForm/Renderer/ArraySmarty.php';
    	$form = new HTML_QuickForm('form_masse','post','oreon.php?p=60921');
     
    	#Path to the configuration dir
    	global $path;
    	$path = "./modules/aaa/";
     
    	#PHP functions
    	require_once $path."Punc.php";
     
    	# Smarty template Init
    	$tpl = new Smarty();
    	$tpl = initSmartyTpl($path, $tpl);
     
    	$tpl->assign("SC_INFO_1",$lang['sc__info_1']);  
    	$tpl->assign("SC_INFO_2",$lang['sc_info_2']);  	  
     
    	$form->addElement('file','conf_1',$lang['sc_titre_1']);
    	$form->addRule('conf_1', 'Vous devez renseigner le champ', 'uploadedfile');	
     
    	$form->addElement('file','conf_2',$lang['sc_conf_masse_titre_2']);
    	$form->addRule('conf_2', 'Vous devez renseigner le champ', 'required');
     
    	$form->addElement("submit","submit" , $lang['sc_conf_masse_save']);	
    	$form->addElement("reset", "reset", $lang['sc_conf_masse_del']);
     
    	 // Create the renderer object
    	$renderer =& new HTML_QuickForm_Renderer_ArraySmarty($tpl);
      	// build the HTML for the form
    	$form->accept($renderer);
    	// assign array with form data
    	$tpl->assign('form', $renderer->toArray());		
    	$tpl->assign('o', $o);
    	$tpl->assign('use_lca', $use_lca);
     
     
    	//Ajout de code supplémentaire
    	if ($form->validate()) {
          # If the form validates then freeze the data
         /* $form->freeze();*/
       }
    else{
     
    	// parse and display the template
    	$tpl->display("sc_conf.ihtml");
    	}
     
    	?>

    Merci d'avance!

  2. #2
    Membre éprouvé
    Avatar de goldkey
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    802
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 802
    Points : 1 084
    Points
    1 084
    Par défaut
    HTML_QuickForm::addRule()

    Essaye plutot comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $form->addRule('conf_2', 'Vous devez renseigner le champ', 'required', '' , client);

  3. #3
    Membre confirmé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Points : 503
    Points
    503
    Par défaut
    Ca ne change pas non plus j'avais déja essayé.


    En fait le probleme viens de cette ligne , j'en suis quasiement sur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $form = new HTML_QuickForm('form_masse','post','oreon.php?p=60921');
    Cela spécifie sur quel page se rediriger au click sur le bouton submit. Du coup je ne sais pas comment utiliser le addrule dans ce cas....

  4. #4
    Membre éprouvé
    Avatar de goldkey
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    802
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 802
    Points : 1 084
    Points
    1 084
    Par défaut
    Citation Envoyé par Katachana Voir le message
    En fait le probleme viens de cette ligne , j'en suis quasiement sur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $form = new HTML_QuickForm('form_masse','post','oreon.php?p=60921');
    Franchement cela m'étonnerait !!

    J'utilise Wordpress pour interfacer certaines données venant d'une base.
    J'ai donc le meme type d'url dans la form et je n'ai pas ce probleme.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $form = new HTML_QuickForm('frmTypeClient','post','?cat=50');
    Citation Envoyé par Katachana Voir le message
    Cela spécifie sur quel page se rediriger au click sur le bouton submit. Du coup je ne sais pas comment utiliser le addrule dans ce cas....
    Si tu spécifies 'client' dans addRule, cela signifie que la vérification est faite coté client, donc la page n'est pas encore envoyé a ce moment la.

    Ce que je te conseille c'est d'abord d'enlever ton paragraphe ci-dessous afin de voir s'il n'y a pas de perturbation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    // Create the renderer object
    	$renderer =& new HTML_QuickForm_Renderer_ArraySmarty($tpl);
      	// build the HTML for the form
    	$form->accept($renderer);
    	// assign array with form data
    	$tpl->assign('form', $renderer->toArray());		
    	$tpl->assign('o', $o);
    	$tpl->assign('use_lca', $use_lca);
    D'autre part, test avec la méthode GET pour voir si tu as le meme soucis.

  5. #5
    Membre confirmé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Points : 503
    Points
    503
    Par défaut
    tout d'aord merci pour tes commentaires.


    Suite à tes remarques j'ai fais toute la série de test que tu m'a suggéré sans succes......

    - essayé avec GET => pas d'affichage de la page au chargement de celle ci
    - en enlevant le paragraphe de fin :
    - Effectivement c'es deux lignes sont inutiles
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $tpl->assign('o', $o);
    	$tpl->assign('use_lca', $use_lca);
    - Le reste influ directement sur la génération html de la page.

    Il doit y avoir un parametres bien caché qui m'empeche de faire fonctionné ce parametre..... Je dois peut etre me penché du coté de la page sur lequel je suis redirigé apres click sur le bouton submit??? C'est dans cette page que j'ai fais l'appel de la fonction traitant le fichier à uploader?

  6. #6
    Membre éprouvé
    Avatar de goldkey
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    802
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 802
    Points : 1 084
    Points
    1 084
    Par défaut
    Concernant ton uploadfile essaye plutot comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $file =& $form->addElement('file', 'fichier', 'Veuillez s&eacute;lectionner un fichier pour l&apos;insertion : ');
    $form->addRule('fichier', 'Vous devez choisir un fichier', 'uploadedfile');
    $form->addRule('fichier', 'Vous devez choisir un fichier CSV', 'mimetype', array('txt/csv', 'txt/csv') );
    $form->addElement('submit', 'bouton_envoyer', 'Envoyer'); //bouton du formulaire
    if ($form->validate()) {
         // traitement si form valider
         if ($file->isUploadedFile()) {
             // traitement si fichier uploader
         }
    }

  7. #7
    Membre confirmé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Points : 503
    Points
    503
    Par défaut
    Merci pour les conseils!

    ca ne marche toujours pas...... je vais donc opter pour des if un peu partout ...

  8. #8
    Membre éprouvé
    Avatar de goldkey
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    802
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 802
    Points : 1 084
    Points
    1 084
    Par défaut
    Ton probleme est très surprenant

    As-tu penser à regarder la version de ton package HTML_QuickForm et eventuellement à le mettre a jour ??

  9. #9
    Membre confirmé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Points : 503
    Points
    503
    Par défaut
    Je n'ai pas la main la dessus non plus ...

    Oui j'avoue que c'est bizarre....

  10. #10
    Membre éprouvé
    Avatar de goldkey
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    802
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 802
    Points : 1 084
    Points
    1 084
    Par défaut
    Désolé de n'avoir pu t'aider...en tout cas bon courage, je sens que tu vas en avoir besoin

  11. #11
    Membre confirmé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Points : 503
    Points
    503
    Par défaut
    Merci quand meme , du coup j'ai opté pour une solution un peu barbare.... on reviens toujours a ces premiers penchant !!!

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

Discussions similaires

  1. [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
  2. [PEAR][Mail] Utilisation de la classe Mail
    Par krapno dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 17/07/2008, 15h51
  3. [PEAR][HTML_QuickForm] Comment bien utiliser ce forum ?
    Par Community Management dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 05/05/2007, 02h28
  4. [PEAR][DB] Utilisation de MySQL
    Par diabolo73 dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 26/04/2006, 08h23
  5. Réponses: 21
    Dernier message: 01/03/2006, 16h51

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