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 20/06/2007, 15h07   #1
Membre du Club
 
Inscription : avril 2007
Messages : 121
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 121
Points : 61
Points : 61
Par défaut [QuickForm] mettre une checkbox à checked

Salut a tous,

Voilà, j'ai un formulaire de modification.
Je recupere donc les valeurs dans une base de donnée et je veux que les elements de mon formulaire prenne les valeurs de ma base de donnée par default.

Pour tous ce qui est champ texte, liste deroulante pas de probleme, j'utilise la setDefaults.
Mais j'ai aussi dans mon formulaire des chechbox.
Apparement on peux utiliser aussi setDefaults mais je n'y arrive pas.
Je n'arrive pas non plus a utiliser la fonction setChecked.

Quelqu'un peut il m'aider?

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php
$form =& new w3_Form('test','post');
$renderer =& new HTML_QuickForm_Renderer_w3v8();
$s =& $form->createElement('select','category','Category: ');
 
$request = "select cat from qzz_categories order by cat";
$envoi=mysql_query($request);
 
$opts = array();	
 
while ($r = mysql_fetch_array($envoi)){
	$opts[$r['cat']] = $r['cat'];
}
 
$s->loadArray($opts,'cat');
$form->addElement($s);
 
$s =& $form->createElement('select','level','Level: ');
$opts = array('Beginer' => 'Beginer', 'Advanced' => 'Advanced', 'Mastered' => 'Mastered');
$s->loadArray($opts,'lev');
$form->addElement($s);
 
$form->addElement('textarea', 'question', 'Question:',
	array('cols' => 40, 'rows' => 5));
$form->addElement('textarea', 'choice1', 'Answer 1:', 
	array('cols' => 40, 'rows' => 5));
$form->addElement('textarea', 'choice2', 'Answer 2:', 
        array('cols' => 40, 'rows' => 5));
$form->addElement('textarea', 'choice3', 'Answer 3:', 
        array('cols' => 40, 'rows' => 5));
$answer[] =& HTML_QuickForm::createElement(
	'checkbox', 'ans1', null, '1');
$answer[] =& HTML_QuickForm::createElement(
        'checkbox', 'ans2', null, '2');
$answer[] =& HTML_QuickForm::createElement(
        'checkbox', 'ans3', null, '3');
$form->addGroup($answer, 'answer', 'correct answer(s):', '&nbsp;');
 
$submit[] =& HTML_QuickForm::createElement('submit', 'save', 'Save');
$form->addGroup($submit, 'submit');
 
$form->addRule('question','this is a required field ','required');
$form->addRule('choice1','this is a required field ','required');
$form->addRule('choice2','this is a required field ','required');
$form->addRule('choice3','this is a required field ','required');
$form->addRule('answer','this is a required field ','required');
 
while ($r = mysql_fetch_array($rep)){
	$form->setDefaults(array('question' => $r['question']));
	$form->setDefaults(array('choice1' => $r['a1']));
	$form->setDefaults(array('choice2' => $r['a2']));
	$form->setDefaults(array('choice3' => $r['a3']));
	$form->setDefaults(array('category' => $r['cat']));
	$form->setDefaults(array('level' => $r['level']));
 
	//la je bloque pour les checkbox
	$form->setDefaults(array('ans1' => ""));
	$form->setDefaults(array('ans2' => ""));
	$form->setDefaults(array('ans3' => ""));
 
}
?>
audran12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2007, 15h41   #2
Membre du Club
 
Inscription : avril 2007
Messages : 121
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 121
Points : 61
Points : 61
Bon, j'ai trouvé la reponse.

En fait il suffisait de faire
$answer[0]->setChecked(true/false); pour le premier
$answer[1]->setChecked(true/false); pour le deuxieme
$answer[2]->setChecked(true/false); pour le troisieme

voila
salut
audran12 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 03h02.


 
 
 
 
Partenaires

Hébergement Web