Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 06-01-2013 16:17:10

lamkadmi
Membre
Date d'inscription: 06-01-2013
Messages: 19

Paramètres perdus

Bonjour,

J'ai un petit problème dont ci-dessous la description:

J'ai créer une action qui permet d'enregistrer quelques informations dans une table mysql,et un formulaire HTML.
==============================================
public function registerAction()
    {
        if ($this->getRequest()->isPost()) {
            $register = new Application_Model_Register();
            if (isset($_POST['nom'])) {
                              $this->_helper->redirector('index?page_id=inscription');
                  $this->view->error='Problème lors d enregistrement';
                        }
                       else{
                                $register->createUser(array(
                               'nom'         => $_POST['nom'],
                               'mail'         => $_POST['mail'],
                               'telephone'      => $_POST['tel'],
                                'password'     => $_POST['password']
                                   ));
                     $this->_helper->redirector('index');
                        }
                       
        }else{
                        $this->_helper->redirector('index?page_id=inscription');
            $this->view->error='Problème lors d enregistrement';
        }
    }
===============================================

Dans mon formulaire HTML j'affiche mon message d'erreur dans un DIV.

===============================================
<?php echo $this->error ; ?>
===============================================

Avec cette manip,je n'arrive pas a afficher mon message d'erreur;après l’exécution de l'action register les informations sont pérdu

Que doit-je faire ???

Hors ligne

 

#2 07-01-2013 10:49:45

Roromix
Membre
Date d'inscription: 05-12-2011
Messages: 55

Re: Paramètres perdus

Pour récupérer tes paramètres, fais plutôt comme ceci:
$this->getRequest()->getParam('nom','');

Hors ligne

 

#3 08-01-2013 21:38:26

lamkadmi
Membre
Date d'inscription: 06-01-2013
Messages: 19

Re: Paramètres perdus

Merci pour votre repense,pour info j'utilise la version 1.12.1 de zend

je vé mieux détaillé ma question:

Mon controlleur IndexController contient les action suivants: indexAction() et registerAction() .lLe problème c'est que quand j'affect une valeur à mon paramètre  $this->view->error='erreur bla bla'; au sein de indexAction() il s'affiche correctement dans ma page HTML mais par contre quand je le met dans la fonction registerAction() il ne sera  plus afficher,comme si il est vide.

j’espère avoir bien détailler mon problème,safé plus que 5 jours que je suis bloqué

Hors ligne

 

#4 08-01-2013 22:44:03

lamkadmi
Membre
Date d'inscription: 06-01-2013
Messages: 19

Re: Paramètres perdus

j'ai même rajouter ce bout de code $this->getRequest()->setParam('test','testttttttttttttttt');dans mon action registerAction()  et j'ai toujours le meme problème.

les valeurs sont perdus d'un action à l'autre

Hors ligne

 

#5 08-01-2013 23:42:58

amiss
Membre
Lieu: Cesson-Sévigné
Date d'inscription: 08-05-2011
Messages: 115

Re: Paramètres perdus

normal que le message d'erreur ne s'affiche pas car en faisant de la redirection dans l'action register tu quittes d'emblée l'action register impliquant la non exécution du code situé après redirector.

Pour arriver à afficher les erreurs :
avant de faire chaque redirection, tu ajoutes le message d'erreur dans l'action helper FlashMessenger puis tu affiches dans la vue destinée à afficher l'erreur:

Code:

[lang=php]
public function registerAction()
    {
           $flasher = $this->getHelper('FlashMessenger');
        if ($this->getRequest()->isPost()) {
            $register = new Application_Model_Register();
          
            if (isset($_POST['nom'])) {
                
               $flasher->setNameSpace('error');
              $flasher->addMessage("problème lors de l'enregistrement");
                              $this->_helper->redirector('index?page_id=inscription');//???
                  
                        }
                       else{
                                $register->createUser(array(
                               'nom'         => $_POST['nom'],
                               'mail'         => $_POST['mail'],
                               'telephone'      => $_POST['tel'],
                                'password'     => $_POST['password']
                                   ));
                     $this->_helper->redirector('index');
                        }
                       
        }else{
   $flasher->setNameSpace('error');
              $flasher->addMessage("problème lors de l'enregistrement");
                              $this->_helper->redirector('index?page_id=inscription');
                    
        }
    }

dans la vue associée à l'action register(c-a-d la vue destinée à afficher le message d'erreur)

Code:

[lang=php]
<?php if ($flashMessenger->setNamespace('error')->hasMessages()): ?>
    <div class="message error">
    <?php foreach ($flashMessenger->getMessages() as $msg): ?>
        <?php echo $msg ?>
    <?php endforeach; ?>
    </div>
<?php endif; ?>

Dernière modification par amiss (08-01-2013 23:47:23)

Hors ligne

 

#6 08-01-2013 23:50:15

amiss
Membre
Lieu: Cesson-Sévigné
Date d'inscription: 08-05-2011
Messages: 115

Re: Paramètres perdus

une remarque: pour la lisibilité du code il faut revoir tes IF dans registerAction() y'en a en trop et peut être inutiles.

Hors ligne

 

#7 09-01-2013 22:38:46

lamkadmi
Membre
Date d'inscription: 06-01-2013
Messages: 19

Re: Paramètres perdus

Merci amiss pour ta repense, smile

j'ai réutiliser ton code,et apparemment j'ai un petit souci avec la deuxième partie (HTML ),j'ai l'erreur suivante.

Code:

 Notice: Trying to get property of non-object in C:\wamp\www\masskane\application\controllers\IndexController.php on line 22
 Notice: Trying to get property of non-object in C:\wamp\www\masskane\application\views\scripts\index\includes\connexion.phtml on line 34
 Fatal error: Call to a member function getMessages() on a non-object in  ...\application\views\scripts\index\includes\connexion.phtml on line 34

Hors ligne

 

#8 10-01-2013 13:15:18

amiss
Membre
Lieu: Cesson-Sévigné
Date d'inscription: 08-05-2011
Messages: 115

Re: Paramètres perdus

lamkadmi a écrit:

Merci amiss pour ta repense, smile

j'ai réutiliser ton code,et apparemment j'ai un petit souci avec la deuxième partie (HTML ),j'ai l'erreur suivante.

Code:

 Notice: Trying to get property of non-object in C:\wamp\www\masskane\application\controllers\IndexController.php on line 22

c'est quoi la ligne 22 dans ton fichier IndexController.php ?


ensuite dans la vue j'avais omis quelque chose.j'ai réécris la vue:

Code:

[lang=php]
<?php $flashMessenger = Zend_Controller_Action_HelperBroker::getStaticHelper('FlashMessenger');?>
<?php if ($flashMessenger->setNamespace('error')->hasMessages()): ?>
    <div class="message error">
    <?php foreach ($flashMessenger->getMessages() as $msg): ?>
        <?php echo $msg ?>
    <?php endforeach; ?>
    </div>
<?php endif; ?>

Hors ligne

 

#9 10-01-2013 13:18:24

amiss
Membre
Lieu: Cesson-Sévigné
Date d'inscription: 08-05-2011
Messages: 115

Re: Paramètres perdus

je te renvoie à la doc pour bien comprendre l'aide d'action flashMessenger:

flashmessenger

Hors ligne

 

#10 10-01-2013 21:16:35

lamkadmi
Membre
Date d'inscription: 06-01-2013
Messages: 19

Re: Paramètres perdus

cool,merci amiss,en fin ça marche j'arrive à afficher mes messages d'erreurs/infos.

Dernière modification par lamkadmi (16-01-2013 17:22:15)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages