Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > Zend_Form
Zend_Form Forum d'entraide pour le composant Zend_Form du Zend Framework (création de formulaires, helpers, AJAX etc.). Avant de poster -> FAQ Zend_Form.
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 11/07/2011, 11h35   #1
 
Femme
Étudiant
Inscription : juin 2011
Messages : 29
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 29
Points : -2
Points : -2
Par défaut griser champ formulaire

Bonjour à tous,
voila déja plusieurs jours que suis sur ce problème. Voici mon formulaire:

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
$relance = new Zend_Form_Element_Radio('relance');
        $relance->setLabel('Relance :');
        $relance->addMultiOptions(array('1' => 'Oui', '0' => 'Non'));
 
 
 
        $nbRelance = new Zend_Form_Element_Text('nbRelance');
        $nbRelance->setLabel('Nombre de Relance')
                ->setRequired(true)
                ->addFilter('StripTags')
                ->addFilter('StringTrim')
                ->addValidator('NotEmpty')
                ->addValidator(new Zend_Validate_Digits());
        $nbRelance->setDecorators(array(
            'ViewHelper',
            'Errors',
            array(array('data' => 'HtmlTag'), array('class' => 'elementForm')),
            array('Label', array()),
        ));
 
        $dateDebutRelance = new ZendX_JQuery_Form_Element_DatePicker(
                'dateDebutRelance', array('label' => 'Date debut de Relance',
                                  'required' => true,
                                 'validators'=> array('Date'),
                               'jQueryParams'=> array('dateFormat' => 'dd/mm/yy')));
 
 
        $frequenceRelance = new Zend_Form_Element_Text('frequenceRelance');
        $frequenceRelance->setLabel('Frequence de Relance')
                ->setRequired(true)
                ->addFilter('StripTags')
                ->addFilter('StringTrim')
                ->addValidator('NotEmpty')
                ->addValidator(new Zend_Validate_Digits());
        $frequenceRelance->setDecorators(array(
            'ViewHelper',
            'Errors',
            array(array('data' => 'HtmlTag'), array('class' => 'elementForm')),
            array('Label', array()),
        ));
Mon problème est: quand le champ relance est à "non", les autres champs doivent être grisés.
Après avoir fait des recherches sur le net, j'ai vu qu'il fallait faire une fonction javascript.
Alors que "moi et javascript ça fait 2"
Est ce que quelqu'un peut m'aider svp.
Merci d'avance
mina13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2011, 12h06   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 016
Points : 5 016
Tu peux griser un champ en ajoutant l'attribut disabled dans le node en question. Je ne sais toutefois pas le faire avec Zend...

Exemple:
Code :
<input type="text" disabled="disabled" value="désactivé" />
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2011, 14h09   #3
 
Femme
Étudiant
Inscription : juin 2011
Messages : 29
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 29
Points : -2
Points : -2
Merci pour la réponse. J'avais vu cette solution sur le net mais je ne sais pas comment ça marche avec zend.
Merci encore.
mina13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2011, 15h46   #4
Membre confirmé
 
Patrick Barroca
Inscription : mai 2008
Messages : 178
Détails du profil
Informations personnelles :
Nom : Patrick Barroca

Informations forums :
Inscription : mai 2008
Messages : 178
Points : 204
Points : 204
Hello,

Pour que ton input soit «disabled» il suffit d'appeler ->setDisabled(true) dessus
patbator est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 09h43   #5
 
Femme
Étudiant
Inscription : juin 2011
Messages : 29
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 29
Points : -2
Points : -2
hello,
j'ai rajouté setDisabled(true) et voici l'erreur que j'ai
Code :
Method setDisabled does not exist
ça ne marche toujours pas
De l'aide svp
mina13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 10h28   #6
Modérateur
 
Avatar de ThomasR
 
Homme Thomas Rambaud
Développeur Web
Inscription : décembre 2007
Messages : 2 140
Détails du profil
Informations personnelles :
Nom : Homme Thomas Rambaud
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 2 140
Points : 2 885
Points : 2 885
Bonjour,

je crois que la méthode setDisabled n'existe pas. Il y a la méthode setAttrib qui permet de valoriser un attribut HTML sur l'élément :

Code :
$nbRelance->setAttrib('disabled', TRUE)
__________________
Développeur Web, accessoirement geek (ou l'inverse)
http://thomasrambaud.com
ThomasR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 11h14   #7
 
Femme
Étudiant
Inscription : juin 2011
Messages : 29
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 29
Points : -2
Points : -2
Bjr, lorsque je mes
Code :
$nbRelance->setAttrib('disabled', TRUE)
le champ est bien grisé. Mais il est toujours grisé que je mette oui ou non sur le bouton radio.
Et merci encore pour cette piste
mina13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 11h18   #8
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 016
Points : 5 016
"dégrise" ton input en enlevant la propriété avec JavaScript.

Avec jQuery (je ne sais pas quelle lib tu utilise) ça donne quelque chose du style:
Code :
1
2
3
4
5
6
 
$('#radio').click(function () {
  if ($(this).is(':checked')) {
     $('#input').removeAttr('disabled');
  }
});
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 14h49   #9
 
Femme
Étudiant
Inscription : juin 2011
Messages : 29
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 29
Points : -2
Points : -2
Comment je fais le lien entre la fonction javascript et mon formulaire dans ce cas?
Voici la fonction que j'ai faite :
Code :
1
2
3
4
5
6
7
function change(){
    $("input[name='relance']").click(function() {
  if($("input[name='relance']:checked").val() == 'oui')
    $('.nbRelance').disabled = false;
  else
    $('.nbRelance').disabled = true;
});
Je devrais mettre ce bout de code
Code :
1
2
3
4
5
$('#radio').click(function () {
  if ($(this).is(':checked')) {
     $('#input').removeAttr('disabled');
  }
});
avec ma fonction ou pas?
Je crois que je suis complètement perdu
Merci encore pour l'aide que vous m'apporter
mina13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 16h08   #10
Membre régulier
 
Inscription : février 2011
Messages : 114
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 114
Points : 77
Points : 77
Bonjour,

tu peux faire appel à ta fonction javascript "change()" lors de la construction de ton élément dans ton formulaire en rajoutant:
Code :
1
2
 
$nbRelance->setAttrib('onchange', 'change()');
en espérant avoir répondu à ta question
flilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2011, 08h49   #11
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 016
Points : 5 016
Le JavaScript intrusif c'est pas terrible, il vaut mieux séparer les données des comportements pour des raisons de flexibilité.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2011, 10h30   #12
 
Femme
Étudiant
Inscription : juin 2011
Messages : 29
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 29
Points : -2
Points : -2
J'ai maintenant les 3 champs de mon formulaire qui se grisent lorsque le champ relance est à non grâce à cette fonction:
Code :
1
2
3
4
5
6
7
function griser(index){
 
    alert(index);
    document.getElementById('nbRelance').disabled = (index == 1);
    document.getElementById('dateDebutRelance').disabled = (index == 1);
    document.getElementById('frequenceRelance').disabled = (index == 1);
}
Sauf que lorsque je veux enregistrer mon formulaire j'ai certaines erreurs:

Code :
Notice: Undefined index: dateDebutRelance in C:\wamp\www\sondage\application\controllers\CampagneController.php on line 66
Code :
Notice: Undefined offset: 2 in C:\wamp\www\sondage\application\controllers\CampagneController.php on line 67
Code :
Undefined offset: 1 in C:\wamp\www\sondage\application\controllers\CampagneController.php on line 67
Code :
Undefined index: nbRelance in C:\wamp\www\sondage\application\controllers\CampagneController.php on line 77
Et voici le code de mon controlleur:

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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
  public function ajoutAction() {
 
        $form = new Application_Form_CampagneForm();
        $this->view->form = $form;
        $sondage_id = $this->_request->getParam("id");
        $sondage = $this->lecture->getSondageById($sondage_id);
        $this->view->sondage = $sondage;
 
        if ($this->_request->getPost('Enregistrer')) {
            $formData = $this->_request->getPost();
 
            //validator date debut campagne
            if (!empty($formData["datedebut"]) && !empty($formData["datefin"]) && !empty($formData["dateDebutRelance"])) {
                $validatorForm = new App_Validator_ValidateDateDebutCampagne(new Zend_Date($formData["datedebut"]),
                                                                            new Zend_Date($formData["datefin"]),
                                                                            new Zend_Date($sondage->getDateDebut()),
                                                                            new Zend_Date($sondage->getDateFin()));
                $form->getElement('datedebut')->addValidator($validatorForm);
 
                //validator date fin campagne
                $validatorForm = new App_Validator_ValidateDateFinCampagne(new Zend_Date($formData["datedebut"]), new Zend_Date($formData["datefin"]), new Zend_Date($sondage->getDatedebut()), new Zend_Date($sondage->getDateFin()));
                $form->getElement('datefin')->addValidator($validatorForm);
 
                //validator date debut relance
                $validatorForm = new App_Validator_ValidateDateDebutRelance(new Zend_Date($formData["datedebut"]), new Zend_Date($formData["datefin"]), new Zend_Date($formData["dateDebutRelance"]));
                $form->getElement('dateDebutRelance')->addValidator($validatorForm);
            }
 
            //validator date fin relance
            if(!empty($formData["dateDebutRelance"])){
                $duree = ($formData["nbRelance"]) * ($formData["frequenceRelance"]);
                $dateFinRelance = new Zend_Date($formData["dateDebutRelance"]);
                $dateFinRelance->add($duree, Zend_Date::DAY);
                $validatorForm = new App_Validator_ValidateDateFinRelance(new Zend_Date($formData["datedebut"]), new Zend_Date($formData["datefin"]), $dateFinRelance);
                $form->getElement('dateDebutRelance')->addValidator($validatorForm);
            }
 
            if ($form->isValid($formData) && !empty($sondage_id)) {
 
 
                $dat = explode('/', $formData["datedebut"]);
                $dateDebut = $dat[2] . '-' . $dat[1] . '-' . $dat[0];
                $dat = explode('/', $formData["datefin"]);
                $dateFin = $dat[2] . '-' . $dat[1] . '-' . $dat[0];
                $dat = explode('/', $formData["dateDebutRelance"]);
                $dateDebutRelance = $dat[2] . '-' . $dat[1] . '-' . $dat[0];
 
 
                $campagne = new Application_Model_Campagne(
                                null,
                                $sondage_id,
                                $dateDebut,
                                $dateFin,
                                $formData["typeReporting"],
                                $formData["relance"],
                                $formData["nbRelance"],
                                $dateDebutRelance,
                                $formData["frequenceRelance"],
                                $formData["libelle"],
                                $formData["verrouille"],
                                $formData["contenuMail"],
                                null);
 
 
                $campagne_id = $this->ecriture->saveCampagne($campagne);
 
                $location = $form->abonnes->getFileName();
 
                if (!empty($location)) {
                    $this->ajoutAbonnes($sondage, $campagne_id, $location);
                }
 
                $this->view->valide = "Nouvelle Campagne créée avec succès";
            } elseif (empty($this->sondage_id)) {
 
                $this->view->error = "'pas de id sondage";
            }
 
        }
    }
Merci à tous
mina13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 10h57   #13
Membre confirmé
 
Patrick Barroca
Inscription : mai 2008
Messages : 178
Détails du profil
Informations personnelles :
Nom : Patrick Barroca

Informations forums :
Inscription : mai 2008
Messages : 178
Points : 204
Points : 204
Hello,

Cela viens du fait que les inputs «disabled» ne sont pas envoyés dans le formulaire et ne sont donc pas présent dans $this->_request->getPost();
Il faut que tu adaptes ton code php en conséquence
patbator est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 12h27   #14
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
Bonjour,

ou alors, préférer l'attribut readonly, il faut pour cela jouer avec les propriétés css pour griser le champ

Code :
1
2
3
 
document.getElementById('nbRelance').readOnly=true;
document.getElementById('nbRelance').style.background="#DDD";
__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/07/2011, 11h04   #15
 
Femme
Étudiant
Inscription : juin 2011
Messages : 29
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 29
Points : -2
Points : -2
Ok, je regarde ça et merci encore à tous.
J'ai une question sur un autre sujet, j'ai fait un contrôleur cron qui envoie des mails dont les adresses sont récupérés sur la base de données. Sauf que j'ai ceci en erreur: No database selected et et je ne reçois pas de mails.
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
63
64
65
 public function envoiesondageAction() {
        $sondages=$this->lecture->getAllSondages();
 
        foreach ($sondages as $sondage)
        {
            $sondage->setCampagnes($this->lecture->getCampagnesBySondage($sondage));
            $campagnes=$sondage->getCampagnes();
            foreach ($campagnes as $campagne)
            {   
                $dateDebut=$campagne->getDatedebutDB();
                if($dateDebut->toValue()<=  time()) //Pour le vrai : changer '<=' en '=='
                {
                    $campagne->setAbonnes($this->lecture->getAbonnesByCampagne($campagne));
                    $abonnes=$campagne->getAbonnes();
                    echo 'Dans la campagne '.$campagne->getLibelle(); //
 
 
                    foreach ($abonnes as $abonne)
                    {
                        echo '<br/>_______________________________________________________<br/>';
                        $contenuMail=$campagne->getContenuEmail();
 
                        $contenuMail=str_replace ("#nom#", $abonne->getNom(), $contenuMail);
                        $contenuMail=str_replace ("#prenom#", $abonne->getPrenom(), $contenuMail);
                        $contenuMail=str_replace ("#mail#", $abonne->getEmail(), $contenuMail);
                        $contenuMail=str_replace ("#civilite#", $abonne->getCivilite(), $contenuMail);
                        $contenuMail=str_replace ("#lien#", "http://".$_SERVER['SERVER_NAME']."/questionnaire/repondre/id/".$sondage->getId()."/a/".$abonne->getCodeId(), $contenuMail);
 
 
                        $contenuMailFinal=nl2br($contenuMail);
                        echo $contenuMailFinal;
 
 
                    //$email=$abonnes->getEmail();
 
 
                }
                echo '<br/><br/><br/>';
            }
        }
 
    }
                    $config = array(
                                    'port' => 25
                                  );
                    $tr = new Zend_Mail_Transport_Smtp('xxx', $config);
                         Zend_Mail::setDefaultTransport($tr);
 
                    $base = mysql_connect ('localhost','','');
                    mysql_select_db ('Sondages', $base);
                    $req = mysql_query("select email from abonne ")or die (mysql_error());
                            while($array = mysql_fetch_array($req))
                    {
                   // $em = $array["email"];
 
                    $mail = new Zend_Mail();
                    $mail->setFrom('XX@XX');
                    $mail->addTo('$array');
                    $mail->setSubject('sujet de test');
                    $mail->setBodyText('Ceci est le texte du message.');
                    $mail->send();
                    Zend_Mail::setDefaultTransport($tr);
                    $mail = new Zend_Mail();
                    }
    }
Lorsque je mes une seule adresse mail sur addTo() l'envoi se fait sans problème.

2e problème: pour tester l'envoi je tape l'adresse url alors que j'aimerais que l'envoi se fasse automatiquement.
Dois je faire un script qui fait l'envoi automatique? Si oui ou dois-je mettre le script?

Merci d'avance.
mina13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 23h25   #16
Modérateur
 
Homme Loïc
Développeur Web
Inscription : février 2011
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 678
Points : 1 041
Points : 1 041
Je reviens juste sur setAttrib('disabled', true);
C est plutot setAttrib('disabled', 'disabled'); et vide pour ne pas le grisé
5h4rk est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/07/2011, 09h08   #17
Modérateur
 
Avatar de ThomasR
 
Homme Thomas Rambaud
Développeur Web
Inscription : décembre 2007
Messages : 2 140
Détails du profil
Informations personnelles :
Nom : Homme Thomas Rambaud
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 2 140
Points : 2 885
Points : 2 885
Citation:
Envoyé par 5h4rk Voir le message
Je reviens juste sur setAttrib('disabled', true);
C est plutot setAttrib('disabled', 'disabled'); et vide pour ne pas le grisé
Tout à fait.
__________________
Développeur Web, accessoirement geek (ou l'inverse)
http://thomasrambaud.com
ThomasR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 09h54   #18
 
Femme
Étudiant
Inscription : juin 2011
Messages : 29
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 29
Points : -2
Points : -2
Ok, merci à tous pour le temps que vous m'avez accordé.
mina13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2011, 12h03   #19
 
Femme
Étudiant
Inscription : juin 2011
Messages : 29
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 29
Points : -2
Points : -2
Bonjour, je suis de retour avec mes problèmes de formulaire.
Le formulaire permet la création d'une section. La première section est obligatoire et non conditionnelle.
Voici mon formulaire avec juste les champs qui me posent problème:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
       $obligatoire = new Zend_Form_Element_Radio('obligatoire');          $obligatoire->setLabel('Section obligatoire :')
                    ->setRequired(true)
                    ->setDecorators(array(
                    'ViewHelper',
                    'Errors',
                    array(array('data' => 'HtmlTag'), array('class' => 'elementForm')),
                    array('Label', array()),
                    ));
        $obligatoire->addMultiOptions(array('1' => 'Oui', '0' => 'Non'));
 
        $contionnel = new Zend_Form_Element_Radio('conditionnelle');
        $contionnel->setLabel('Section conditionnelle :')
                ->setRequired(true)
                ->setDecorators(array(
                    'ViewHelper',
                    'Errors',
                    array(array('data' => 'HtmlTag'), array('class' => 'elementForm')),
                    array('Label', array()),
                    ));
        $contionnel->addMultiOptions(array('1' => 'Oui', '0' => 'Non'));
        //$contionnel->setAttrib('disabled', 'disabled');
Problème: je souhaite lors de la création de la première section que le "Non" du champ obligatoire et le "Oui" du champ conditionnel soient grisé et pour la création des sections suivantes qu'on ait le choix de sélectionner oui ou non.
Toute aide sera la bien venue.
mina13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2011, 12h16   #20
Membre régulier
 
Inscription : février 2011
Messages : 114
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 114
Points : 77
Points : 77
Bonjour,
as-tu essayé:
Code :
1
2
 
$obligatoire->setAttrib('readOnly', 'readOnly');
flilou 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 23h46.


 
 
 
 
Partenaires

Hébergement Web