IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend_Form PHP Discussion :

Contrôle checkbox


Sujet :

Zend_Form PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 489
    Par défaut Contrôle checkbox
    Bonjour,
    Je dispose d'un formulaire (voir.phtml) dans lequel j'ai inséré une checkbox qui permet de valider des CGU :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='checkbox' name='cgu'><a href='<?php echo $this->baseUrl ?>/pay/cgu' target='_blank'>J'ai lu et accepté les conditions générales de ventes</a>
    Le bouton qui apparaît ensuite pour valider le formulaire est construit dans le controller via Zend_Form.

    J'aimerais savoir s'il est possible de vérifier dans le controller que le checkbox est bien coché, si oui, comment le faire ?

    D'avance merci.
    Vincent

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    deux possibilités :
    - tu as créé ta checkbox en utilisant Zend_Form_Element_Checkbox. Dans ce cas, il existe une fonction isChecked() qui regarde si la case est cochée ou non.

    - tu as écrit ta checkbox à la main en html. Dans ce cas, on revient au bon vieux principe qui dit qu'une checkbox non cochée n'est pas envoyée par le formulaire. Donc si tu as une valeur dans $_POST['cgu'], c'est qu'elle est cochée
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 489
    Par défaut
    merci.
    j'ai utilisé le

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 489
    Par défaut
    je me permets de revenir sur le sujet, car l'interception de $_POST['cgu'] fonctionne, mais je n'arrive pas à interpréter son contenu pour rediriger dans un sens ou l'autre

    J'ai tenté les codes suivants :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    - if (!empty($_POST['cgu'])) --> coché ou non, même résultat
    - if (!isset($_POST['cgu'])) --> coché ou non, même résultat

    J'ai tenté également de tester si la valeur est "" .. rien non plus.

    Auriez-vous la solution car je ne comprends plus.
    Merci.

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    normalement isset devrait fonctionner.
    Essaye de faire un print_r de $_POST pour voir ce qu'il y a dedans...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 489
    Par défaut
    ma variable est vide, je ne comprends pas pourquoi...

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 489
    Par défaut
    N'ayant pas de solution, je tente d'une façon différente :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ->addElement(
                'CheckBox',
                'cgu',
                array(
                  'label' => 'I accept CGU',
                  'style' =>'margin-left:100px;',
                  'required' => true,
                  'checkedValue' => '1'
                  )
            )
    Malheureusement, ça ne me donne rien non plus... moi qui croyait qu'il était simple d'utiliser une case à cocher ...
    je préfère les développements web sans framework ...

    Je dispose un controlle avec plusieurs méthodes

    dont une "voirAction" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     $form = new Zend_Form();
    		$idElement = $form->createElement('hidden', 'id')->setValue($id);
    		$keyElement = $form->createElement('hidden', 'key')->setValue($key);
     
     
         $form->setMethod('post')
    			 ->setAttrib("target","_self")
    		   ->setAction(ROOT_URL . '/pay')
    		   ->addElement(
                'CheckBox',
                'cgu',
                array(
                  'label' => 'I accept CGU',
                  'style' =>'margin-left:100px;',
                  'required' => true,
                  'checkedValue' => '1'
                  )
            )
    		   ->addElement('submit', 'Accéder à la plateforme ', array('label' => 'Accéder à la plateforme'))
    		   ->addElement($idElement)
    		   ->addElement($keyElement);
     
    		$this->view->form = $form;
    		$this->view->dp = $dp;
    Puis la méthode "indexAction" appelé par le submit du formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(!isset($_POST['cgu']) && $_POST['cgu'] != "1"){
            $this->_redirect('/error/cgu');
          }
    quand je vérifie le contenu de $_POST['cgu'], je n'ai rien, que la case soit cochée ou non.

    Auriez-vous une idée avec ces éléments?

  8. #8
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 489
    Par défaut
    sinon, autre solution : est-ce possible de faire apparaître le bouton de validation seulement après avoir coché la case ? en gros, dès que l'utilisateur coche la case, faire apparaître le bouton.
    Si possible, pourriez-vous m'expliquer comment faire ?

Discussions similaires

  1. Réponses: 13
    Dernier message: 30/05/2012, 10h42
  2. [Checkbox dans ListBox] Récupérer la valeur des contrôles Checkbox
    Par Manson dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 25/05/2009, 10h10
  3. Lag avec contrôles checkbox!
    Par metalheadz dans le forum Windows Forms
    Réponses: 6
    Dernier message: 28/01/2008, 20h30
  4. Contrôles (CheckBox) sur une feuille de calcul
    Par yogyx dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 04/12/2006, 09h54
  5. problème contrôle checkbox cliqué ou non
    Par mussara dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/04/2006, 16h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo