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 27/08/2007, 12h52   #1
Futur Membre du Club
 
Inscription : juillet 2006
Messages : 92
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 92
Points : 16
Points : 16
Par défaut [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 :
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
PadaBen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2007, 23h38   #2
Membre éprouvé
 
Avatar de calogerogigante
 
Inscription : avril 2003
Messages : 600
Détails du profil
Informations personnelles :
Âge : 41
Localisation : Belgique

Informations forums :
Inscription : avril 2003
Messages : 600
Points : 451
Points : 451
J'ai fait un petit test avec ceci :

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
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...
__________________
L'informatique vous fait gagner du temps, à condition d'en disposer suffisamment !
Calogero GIGANTE
calogerogigante est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 00h34   #3
Futur Membre du Club
 
Inscription : juillet 2006
Messages : 92
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 92
Points : 16
Points : 16
Par défaut suite

Trop MErci

je regarde cela et te dis.

bon code
PadaBen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 01h00   #4
Futur Membre du Club
 
Inscription : juillet 2006
Messages : 92
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 92
Points : 16
Points : 16
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 :
1
2
 
$form->addElement("hidden", 'action', 'inscription');
il faut tout bonnement mettre
Code :
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
PadaBen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 08h53   #5
Membre éprouvé
 
Avatar de calogerogigante
 
Inscription : avril 2003
Messages : 600
Détails du profil
Informations personnelles :
Âge : 41
Localisation : Belgique

Informations forums :
Inscription : avril 2003
Messages : 600
Points : 451
Points : 451
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...
???
__________________
L'informatique vous fait gagner du temps, à condition d'en disposer suffisamment !
Calogero GIGANTE
calogerogigante est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 10h03   #6
Futur Membre du Club
 
Inscription : juillet 2006
Messages : 92
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 92
Points : 16
Points : 16
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

++
PadaBen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2007, 11h35   #7
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Pour rappel, nous avons un article à ce sujet : http://php.developpez.com/cours/pear/html-quickform/
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui 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 11h14.


 
 
 
 
Partenaires

Hébergement Web