Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > PEAR > HTML_quickform
HTML_quickform Forum d'entraide pour la bibliothèque HTML_quickform du framework PEAR, permettant de manipuler des formulaires en PHP. Avant de poster -> tutoriels QuickForm
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/01/2008, 13h57   #1
Membre éprouvé
 
Avatar de Katachana
 
Inscription : avril 2007
Messages : 745
Détails du profil
Informations personnelles :
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : avril 2007
Messages : 745
Points : 440
Points : 440
Par défaut [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 :
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!
Katachana est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2008, 00h00   #2
Membre émérite
 
Avatar de goldkey
 
Inscription : mars 2003
Messages : 795
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : mars 2003
Messages : 795
Points : 842
Points : 842
HTML_QuickForm::addRule()

Essaye plutot comme cela :

Code :
$form->addRule('conf_2', 'Vous devez renseigner le champ', 'required', '' , client);
goldkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2008, 09h27   #3
Membre éprouvé
 
Avatar de Katachana
 
Inscription : avril 2007
Messages : 745
Détails du profil
Informations personnelles :
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : avril 2007
Messages : 745
Points : 440
Points : 440
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 :
$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....
Katachana est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2008, 13h20   #4
Membre émérite
 
Avatar de goldkey
 
Inscription : mars 2003
Messages : 795
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : mars 2003
Messages : 795
Points : 842
Points : 842
Citation:
Envoyé par Katachana Voir le message
En fait le probleme viens de cette ligne , j'en suis quasiement sur :

Code :
$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 :
$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 :
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.
goldkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 09h21   #5
Membre éprouvé
 
Avatar de Katachana
 
Inscription : avril 2007
Messages : 745
Détails du profil
Informations personnelles :
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : avril 2007
Messages : 745
Points : 440
Points : 440
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 :
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?
Katachana est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 10h40   #6
Membre émérite
 
Avatar de goldkey
 
Inscription : mars 2003
Messages : 795
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : mars 2003
Messages : 795
Points : 842
Points : 842
Concernant ton uploadfile essaye plutot comme cela :

Code :
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
     }
}
goldkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 13h59   #7
Membre éprouvé
 
Avatar de Katachana
 
Inscription : avril 2007
Messages : 745
Détails du profil
Informations personnelles :
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : avril 2007
Messages : 745
Points : 440
Points : 440
Merci pour les conseils!

ca ne marche toujours pas...... je vais donc opter pour des if un peu partout ...
Katachana est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 14h16   #8
Membre émérite
 
Avatar de goldkey
 
Inscription : mars 2003
Messages : 795
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : mars 2003
Messages : 795
Points : 842
Points : 842
Ton probleme est très surprenant

As-tu penser à regarder la version de ton package HTML_QuickForm et eventuellement à le mettre a jour ??
goldkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 18h21   #9
Membre éprouvé
 
Avatar de Katachana
 
Inscription : avril 2007
Messages : 745
Détails du profil
Informations personnelles :
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : avril 2007
Messages : 745
Points : 440
Points : 440
Je n'ai pas la main la dessus non plus ...

Oui j'avoue que c'est bizarre....
Katachana est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 18h26   #10
Membre émérite
 
Avatar de goldkey
 
Inscription : mars 2003
Messages : 795
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : mars 2003
Messages : 795
Points : 842
Points : 842
Désolé de n'avoir pu t'aider...en tout cas bon courage, je sens que tu vas en avoir besoin
goldkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2008, 09h56   #11
Membre éprouvé
 
Avatar de Katachana
 
Inscription : avril 2007
Messages : 745
Détails du profil
Informations personnelles :
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : avril 2007
Messages : 745
Points : 440
Points : 440
Merci quand meme , du coup j'ai opté pour une solution un peu barbare.... on reviens toujours a ces premiers penchant !!!
Katachana est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h43.


 
 
 
 
Partenaires

Hébergement Web