Oui mais ça ne marche pas.
:?
Version imprimable
Oui mais ça ne marche pas.
:?
Tu es sur que c'est grisé et non coché que tu veux? Car je ne vois pas trop l'intérêt après tu peux grisé le tout et sélectionner celui que tu veux.
Effectivement je veux que le "oui" de obligatoire et le "non" de conditionnelle soient cochés. J'ai essayé avec setValue() mais c'est pas vraiment ce que je veux.
donc c'est autre chose.
Moi j'ai utilisé setValue de la manière suivante et ça fonctionne:
Comment l'utilises-tu?Code:
1
2
3
4
5
6 $obligatoire->addMultiOptions(array('1' => 'Oui', '0' => 'Non')); $obligatoire->setValue('1', 'Oui'); $contionnel->addMultiOptions(array('1' => 'Oui', '0' => 'Non')); $contionnel->setValue('0', 'Non');
Avec setValue() le "oui" est bien coché, mais l’utilisateur peut aussi coché sur le "non". Alors que je souhaite que le "non" soit bloqué.
Je vais peut être ré expliquer mon problème.
Alors j'ai un formulaire qui permet de créer des sections. Lors de la première création, l'utilisateur ne doit pas avoir le choix de sélection "non" sur le champ obligatoire et "oui" sur le champ conditionnel.
Lors de la deuxième création, l’utilisateur a le choix de sélectionner la réponse qu'il veut.:D
J'espère que j'ai bien expliqué mon problème:?
Merci encore à tous
Et en ajoutant la précédente réponse :
Code:->setAttrib('disabled', 'disabled');
Quand je rajoutele bouton est bien grisé.Code:->setAttrib('disabled', 'disabled');
Maintenant comment faire pour qu'il ne soit plus grisé lors de la création de la 2e section?
Dois-je faire une fonction javascript qui test si c'est la 1ère section alors la grisée sinon l'utilisateur peut faire son choix?
Merci encore
Oui tu dois utiliser du javascript si tu n'as pas de rafraichissement de la page, sinon avec
Citation:
->setAttrib('disabled', '');
Le javascript c'est pas trop mon truc:(.
Alors j'ai fait une fonction qui renvoie un tableau de section :
Cette fonction se trouve dans ma lecture.Code:
1
2
3
4
5
6
7
8
9 public function getSectionBySondage(Application_Model_Sondage $sondage) { $sections = $this->dbSection->getBySondage($sondage); $return = array(); foreach ($sections as $section) { $section->setLibelle($this->dbTraduction->getTraduction($section->getId(), 'section')); $return[] = $section; } return $return; }
Je souhaite que la fonction javascript fasse le test sur l'indice de la section. Si l'indice de la section est 0 alors on grise les boutons.
Sauf que j'ai du mal à concevoir ce bout de code et je n'arrive pas à faire le lien entre la fonctionet la fonction javascript.:cry:Code:getSectionBySondage()
J'ai essayé de faire cette fonction:
Merci de m'aider.:(Code:
1
2
3
4
5
6
7
8 function griserBouton(index){ var section=new Array(); alert(index); if(section[0]){ document.getElementById('obligatoire').disabled=(index == 1); document.getElementById('conditionnel').disabled=(index == 1); } }
Tu aurais un screen de comment ça se présente pour mieux comprendre
Voici le formulaire pour l’ajout de la première section:
http://img818.imageshack.us/img818/6900/image1ar.png
Lorsqu’on clique sur ajouter section, étant donnée que c’est la première section, le formulaire doit se présenter comme ci-dessous :
http://img585.imageshack.us/img585/4578/image2hq.png
Ce qui indique que la première section est obligatoire et non conditionnelle.
Ensuite lorsqu’on veut ajouter la 2e section, le formulaire devient :
http://img593.imageshack.us/img593/9199/sansrebl.png
Ce qui permet à l’utilisateur de choisir si sa section est obligatoire et conditionnelle ou pas.
C'est ce que je souhaite faire.
Merci encore pour le temps que vous m'accorder.
Mais pour afficher le formulaire de la section deux, c'est fait en javascript ou c'est une action donc un changement de page
J'aimerai le faire en javascript mais je ne n'arrive pas. En fait je cherche une solution pour le faire.
Mais la comment ça fonctionne actuellement? pour aller à la section 2 ?
Actuellement pour aller à la section 2 ça reste toujours grisé.
C'est comme sur l'image
http://img585.imageshack.us/img585/4578/image2hq.png
Ma question c'est comment tu y va ?
Tu clique sur un bouton qui t'envoi en section 2 ?
C'est sur la même page rien est fait ?
etc
Désolez :( , j'avais pas compris la question. J'ajoute la 2e section avec un bouton ajout section.
Voici comment se présente le formulaire quand la 1ère section est ajouté:
http://img846.imageshack.us/img846/5563/image4yd.png
Lorsque je clique sur ajout formulaire,j'arrive sur cette page:
http://img17.imageshack.us/img17/1073/image2bc.png
Alors que je souhaiterais que le formulaire soit comme ci dessous:
http://img37.imageshack.us/img37/5843/image3fd.png
J’espère que je suis bien expliquée cette fois.:D
Oui trés bien par contre tu peux me faire voir le lien sur le bouton ajouter section, que je sois sur d'un truc.
C'est gérer par ton controller au moment du clique non?
Si c'est la cas pas besoin de javascript
Oui c'est géré par le contrôleur. Voici le lien sur l'ajoutEt la fonction section action du contrôleur si besoin:Code:
1
2 <a href="/questionnaire/section/s/30"> <span class="ajout">Ajouter section</span>
Merci encore pour le temps que tu m'accorde.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 public function sectionAction() { $idSection = $this->_request->getParam('sec'); if (isset($idSection)) { $section = $this->lecture->getSectionById($idSection); $sondage = $this->lecture->getSondageBySection($section); } $idSondage = $this->_request->getParam('s'); if (isset($idSondage)) $sondage = $this->lecture->getSondageById($idSondage); $langues = $this->lecture->getLanguesBySondage($sondage); if (in_array($this->view->langue(), $langues)) $lang = $this->view->langue(); else $lang = $langues[0]; $questions = $this->lecture->getQuestionBySondage($sondage); $form = new Application_Form_SectionForm($lang, $langues, $questions); $this->view->form = $form; $this->view->sondage = $sondage; if ($this->_request->isPost() && $this->_request->getPost('Valider')) { $formData = $this->_request->getPost(); if ($form->isValid($formData)) { $langue = array(); foreach ($formData as $key => $lang) { if (preg_match("/lang_/", $key) > 0) { $langue[preg_replace("/lang_/", "", $key)] = $lang; unset($formData[$key]); } } /* var_dump($langue); var_dump($formData); die; */ $Visible = 0; if ($formData["conditionnelle"] == "0") $Visible = 1; $section = new Application_Model_Section(null, $sondage, $formData["obligatoire"], $langue, null); $id = $this->ecriture->saveSection($section); if (isset($idSection)) $this->ecriture->saveSousSection($idSection, $id); $this->_redirect("questionnaire/index/id/" . $sondage->getId()); } } }
Tu peux juste m'indiquer ou ça ajoute ta section dans ton controller (ce qui permet de l afficher)
Désolé mais c'est que je n'ai pas le temps de chercher à comprendre ton code :zoubi: