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 Framework PHP Discussion :

Pb avec un form et peut etre le layout!? [ZF 1.7]


Sujet :

Zend Framework PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de miya
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 469
    Par défaut Pb avec un form et peut etre le layout!?
    Bonjour,

    Je rencontre un problème que j'ai vraiment du mal a comprendre.

    Dans le cadre d'un développement d'un site web, sur mes pages principales j'ai des formulaires qui font des insertions en base etc etc.. Tout fonctionne bien.

    Je développe un back office, je change mon layout dans mon controller, puis je commence à construire les différents modules. Simplement je fais des copier coller de mes précédemments formulaires, mais la ca ne fonctionne plus. Je ne recupère plus mes valeurs du formulaire, il m'affiche dans la barre d'adresse les éléments alors qu'en partie public ca ne me le faisait pas..
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    class AdminController extends Zend_Controller_Action 
    {
     
    	function init(){
    		$this->_helper->layout->setLayout('adminlayout');
    	}
     
        function indexAction()
        {
            $this->view->title = "Module Accueil";
            $accueil = new Accueil();
    		$this->view->accueils = $accueil->getAccueilAll();
    		$this->view->form = $this->getFormAccueil();
        }
     
        private function getFormAccueil(){
     
        	$this->view->title="ajouter";
    		$form = new AcceuilForm();
    			echo '<pre>';print_r($form->getValues());echo '</pre>';
    		if($this->_request->isPost()){
    			$formData = $this->_request->getPost();
    			$form->populate($formData);
    			$formData=$form->getValues();
    			if($form->isValid($formData)){
    				$acc = new Accueil();
    				$accueil= $acc->createRow($formData);
    				if($accueil){
    					$accueil->save();
    				}
    			}
    		}
    		return $form;
        }
    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
    25
    26
     
    class AccueilForm extends Zend_Form
    {
    	public function __construct($options=null)
    	{
    		parent::__construct($options);
    		$this->setName('ajout accueil');		
     
    		//$idUser = new Zend_Form_Element_Hidden('idUsers');
     
    		$titre = new Zend_Form_Element_Text('titre');
    		$titre->setLabel('titre')
    				->setRequired(true)
    				->addFilter('StringTrim')
    				->addFilter('StripTags')
    				->addValidator('NotEmpty');
    		$resume = new Zend_Form_Element_Text('resume');
    		$resume->setLabel('resume')	
    					->setRequired(True)
    					->addFilter('StringTrim')
    					->addFilter('StripTags')
    					->addValidator('NotEmpty');
    		$submit = new Zend_Form_Element_Submit('envoyer');
    		$submit->setLabel('envoyer');
    		$this->addElements(array($titre,$resume,$submit));
    	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://localhost/webspace/public/admin?titre=test&resume=test&envoyer=envoyer
    apparemment, en désactivant mon layout et en laissant celui par défaut, ca a l air de fonctionner..

    dites moi si vous avez besoin d'information supplémentaire

  2. #2
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Bonjour,

    dans le code source généré, la méthode du formulaire est GET et pas POST ?

    Bizarre d'instancier un formulaire "ArticlesForm" dans ta mathode "getFormAccueil", d'autant que la classe que tu nous montres est AccueilForm

  3. #3
    Membre éclairé Avatar de miya
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 469
    Par défaut
    Bonsoir Eusebe,

    Désolée, c t pour tester avec d'autre formulaire dont j'étais sur qui fonctionne correctement. J'instancie bien avec : new AcceuilForm(); (je corrige ci dessus)

    Sinon savoir si c'est en post ou get, je ne sais pas te dire, j'ai mis le code que j'avais écrit, par défaut c'est le post !? Dans ma partie public, à vrai dire cela fonctionne sans le spécifier, et les paramêtres ne sont pas passés dans l url

    résultat de mon echo :/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Array
    (
        [titre] => 
        [resume] => 
        [envoyer] => 
    )

  4. #4
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Citation Envoyé par miya Voir le message
    Sinon savoir si c'est en post ou get, je ne sais pas te dire, j'ai mis le code que j'avais écrit, par défaut c'est le post !?
    Ok, mais qu'as-tu dans le code source généré (dans ton navigateur, fais "afficher le code source" quand tu es sur la page avec le formulaire...)

    Citation Envoyé par miya Voir le message
    résultat de mon echo :/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Array
    (
        [titre] => 
        [resume] => 
        [envoyer] => 
    )
    Ca c'est normal, tu fais ton echo avant de remplir ton formulaire

  5. #5
    Membre éclairé Avatar de miya
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 469
    Par défaut
    exact lol! j'ai pas encore tous les réflexions, meme si ca va mieut de jour en jour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <form id="ajoutaccueil" enctype="application/x-www-form-urlencoded" action="" method="post"><dl class="zend_form">
    <dt><label for="titre" class="required">titre</label></dt>
    <dd>
    <input type="text" name="titre" id="titre" value=""></dd>
    <dt><label for="resume" class="required">resume</label></dt>
    <dd>
    <input type="text" name="resume" id="resume" value=""></dd>
    <dt>&nbsp;</dt><dd>
    <input type="submit" name="envoyer" id="envoyer" value="envoyer"></dd></dl></form>
    En faite, mon action est vide, c normal ? donc evidemment je ne passe jamais dans mon if, et n'affiche pas mon echo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if($this->_request->isPost()){
    			echo "ok";
    C'est bizarre

  6. #6
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Citation Envoyé par miya Voir le message
    En faite, mon action est vide, c normal ?
    Dans ce cas, le formulaire est simplement envoyé à la même adresse que celle utilisée pour l'afficher... Donc oui c'est normal...

    J'avoue ne pas bien comprendre pourquoi tes données seraient transmises en mode GET et pas POST

    Quelles sont les différences entre ton layout de base et ton layout admin ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 06/03/2011, 00h28
  2. Réponses: 8
    Dernier message: 11/08/2005, 09h32
  3. Réponses: 1
    Dernier message: 11/08/2005, 01h26
  4. EDBEngineError : "... ne peut etre utilisee avec ce pil
    Par Dev_Michael dans le forum Bases de données
    Réponses: 1
    Dernier message: 16/03/2005, 15h15

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