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 :

[Zend] Soumission de formulaire une deuxi�me fois impossible


Sujet :

Zend Framework PHP

  1. #1
    Membre �clair�
    Homme Profil pro
    Symfony - CMS Wordpress - Zend
    Inscrit en
    Septembre 2011
    Messages
    306
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Symfony - CMS Wordpress - Zend
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 306
    Par d�faut [Zend] Soumission de formulaire une deuxi�me fois impossible
    Bonjour,

    Apr�s recherche sur le forum sans succ�s,

    je fait appel a vous afin de clarifier un usecase de formulaire

    quand mon fomrluaire est soumis avec des erreurs

    il m'est impossible de resoumettre une nouvelle fois le formulaire

    voici le code html apr�s avoir soumis le formulaire une fois: mes �l�ment qui normalement se trouve dans la balise de formalaire ne le sont plus..

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    <ul class="content-box"><form id="recognition1" name="recognition1" enctype="application/x-www-form-urlencoded" action="monaction" method="post"></form>
     (element qui normalement est dans mon formuaire...)</ul>

    Merci pour vos r�actions.

  2. #2
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par d�faut
    J'ai pas tout compris.

    D�j� je ne vois pas de bouton submit. Le peu de code que tu as post� n'aide gu�re.

  3. #3
    Membre �clair�
    Homme Profil pro
    Symfony - CMS Wordpress - Zend
    Inscrit en
    Septembre 2011
    Messages
    306
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Symfony - CMS Wordpress - Zend
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 306
    Par d�faut Formulaire
    Merci pour ta r�action..

    pour commencer je te poste le formulaire:

    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
    36
    37
    38
    39
    40
    41
    42
    43
     
    class Myform extends CrudForm implements ModelMap
    {
    public function init()
        {
            // id
            $elem = new Hidden(self::ELEM_ID);
            $elem->addValidator('Alnum');
            $elem->setOrder(1);
     
            $this->addElement($elem);
     
            // name
            $elem = new Text(self::ELEM_NAME);
            $elem->setLabel('name');
            $elem->addValidator(new \Zend_Validate_StringLength(1, 32));
            $elem->addValidator(new StringLengthValidator(array('min' => 1,'max' =>32, 'encoding' => 'UTF-8', 'isMb' => true)));
            $elem->setRequired(true);
            $elem->setOrder(2);
     
            $this->addElement($elem);
     
            // description
            $elem = new Text(self::ELEM_DESCRIPTION);
            $elem->setLabel('desciprtion');
            $elem->addValidator(new \Zend_Validate_StringLength(0, 255));
            $elem->addValidator(new StringLengthValidator(array('min' => 0,'max' =>255, 'encoding' => 'UTF-8', 'isMb' => true)));
            $elem->setOrder(3);
     
            $this->addElement($elem);
     
     
            // submit
     
            $elem = new \Zend_Form_Element_Button(self::ELEM_SUBMIT);
     
            $elem->setLabel('submit');
            $elem->setOrder(99);
            $this->addElement($elem);
     
            parent::init();
             }
     }
    et le code html g�n�rer:

    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
     
    <form enctype="application/x-www-form-urlencoded" action="monaction" method="post"><ul class="content-box">
    <li class="hidden"><div>
    <input type="hidden" name="__validation_type" value="add" id="__validation_type"></div></li>
    <li class="hidden"><div>
    <input type="hidden" name="id" value="" id="id"></div></li>
    <li><label for="name" class="desc required">Nom *</label>
    <div>
    <input type="text" name="name" id="name" value="" class="field text full"></div></li>
    <li><label for="description" class="desc optional">Description</label>
    <div>
    <input type="text" name="description" id="description" value="" class="field text full"></div></li>
    <li class="hidden"><div>
    <input type="hidden" name="__redirect_invalid" value="monurl" id="__redirect_invalid"></div></li>
    <li class="buttons"><div>
    <input type="submit" name="submit" id="submit" value="Submit" class="ui-state-default ui-corner-all float-right ui-button"></li></ul></form>
    et voici le code html apr�s avoir soumis une premi�re fois avec par exemple des champs vide

    ce qui me retourne des erreur mais ne permet pas de soumettre une nouvelle fois le formulaire,

    le bouton submit est bloquer..

    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
     
    <ul class="content-box"><form enctype="application/x-www-form-urlencoded" action="monaction" method="post"></form>
    <div><li class="hidden"></li>
    <input type="hidden" name="__redirect_invalid" value="monurl" id="__redirect_invalid"></div>
    <div><li class="hidden"></li>
    <input type="hidden" name="id" value="" id="id"></div>
    <div><label for="name" class="desc required">Nom *</label>
    <li>
    <ul class="errors"><li>Value is required and can't be empty</li></ul></li>
    <input type="text" name="name" id="name" value="" class="field text full"></div>
    <div><label for="description" class="desc optional">Description</label>
    <li></li>
    <input type="text" name="description" id="description" value="" class="field text full"></div>
    <div><label for="type" class="desc required">Type *</label>
    <li></li>
    <div><li class="hidden"></li>
    <input type="hidden" name="__validation_type" value="add" id="__validation_type"></div>
    <div><li class="buttons"></li>
    <input type="submit" name="submit" id="submit" value="Submit" class="ui-state-default ui-corner-all float-right ui-button"></div></ul>

  4. #4
    Membre �m�rite Avatar de Willy_k
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2011
    Messages
    541
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : C�te d'Ivoire

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 541
    Par d�faut
    Salut,
    dans le html g�n�r� apr�s le premier envoi , ton form est vide(mauvais copier-coller ou c'est bien le truc g�n�r� ?) donc je pense que c'est tout � fait normal que rien ne se passe..
    A toi de voir qu'est-ce qui pourrait �tre la cause du mauvais html g�n�r� apr�s le premier envoi

  5. #5
    Membre �clair�
    Homme Profil pro
    Symfony - CMS Wordpress - Zend
    Inscrit en
    Septembre 2011
    Messages
    306
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Symfony - CMS Wordpress - Zend
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 306
    Par d�faut
    Merci Willy pour ta r�action.

    Comme tu dit, c'est peut-�tre un mauvais copier coller mais le form est bien vide avant de soumettre.
    Ce que je fait c'est que je redirige l'utilisateur sur le m�me formulaire apr�s qu'il l'ai soumis avec des erreurs.. Ce qui ferme les formulaires (ce que j'essaie d'expliquer au mieux mais pas �vident).
    Tu pense pas que je doit cr�� deux formulaires afin de g�rer ce cas ?
    En g�n�ral je ne redirige pas l'utilisateur apr�s qu'il ai soumis avec des erreurs..
    Dans ce cas l� oui..

  6. #6
    Membre �m�rite Avatar de Willy_k
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2011
    Messages
    541
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : C�te d'Ivoire

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 541
    Par d�faut
    Quand je parle de vide, je ne sais pas si on se comprends mais je ne parlais pas des champs de ton formulaire.. Tu as un truc comme �a <form enctype="application/x-www-form-urlencoded" action="monaction" method="post"></form> donc ton form ici est vide, le bouton submit qui se retrouve tout seul en bas aura aucune action. Le 2�me html que tu as montr� est incorrect, comment tu l'obtiens ?

  7. #7
    Membre �clair�
    Homme Profil pro
    Symfony - CMS Wordpress - Zend
    Inscrit en
    Septembre 2011
    Messages
    306
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Symfony - CMS Wordpress - Zend
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 306
    Par d�faut
    je l'obtient juste apr�s avoir soumis mon formulaire avec une erreur(s)

    c'est ce que j'essaie de r�soudre ou du moins juste avoir une explication.

    par la m�me occasion mon formulaire dans cet �tat est inutilisable

    et du coup je doit rafraichir la page.

    est-ce au niveau du formulaire?

    ce que je doute car j'ai des autres formulaire qui eux fonctionne tr�s bien..

    la seule diff�rence a mon avis c'est au niveau du redirect..? � confirmer.

  8. #8
    Membre �clair� Avatar de Persistant
    Homme Profil pro
    Administrateur de base de donn�es
    Inscrit en
    Septembre 2016
    Messages
    50
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Administrateur de base de donn�es

    Informations forums :
    Inscription : Septembre 2016
    Messages : 50
    Par d�faut Bonsoir
    Nom : boule-de-cristal-600x398.jpg
Affichages : 512
Taille : 53,1 Ko

    Comme tu n'as pas montr� assez de code(Controller, View, CrudForm, etc...) Je me retourne vers ma boule de cristal qui me dis que tu as une erreur javascript... Surement du au faite que le bouton submit n'est pas entre les balise form comme Willy_k te l'a expliqu�...

    As tu v�rifi� que tu n'as pas d'erreur dans la console de ton navigateur ?
    As tu v�rifi� que le code que tu poste n'est pas une erreur de copier coll� ?
    Si tu es novice, ne soit pas avar en code (poste tout puisque tu semble perdu dans ton code)

  9. #9
    Membre �clair�
    Homme Profil pro
    Symfony - CMS Wordpress - Zend
    Inscrit en
    Septembre 2011
    Messages
    306
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Symfony - CMS Wordpress - Zend
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 306
    Par d�faut post code
    Merci pour ta r�action..

    voici mes formulaire:

    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
    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
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
     
    abstract class MyForm extends \Form\Standard
    {
        const SELECT = "select";
        const ELEM_MESSAGE     = 'message';
        const ELEM_SUBMIT      = 'submit';
     
     
        public function init()
        {
            parent::init();
     
     
            $this->addElement(new Element\select(self::SELECT));
     
     
            $elem = new \Textarea(self::ELEM_MESSAGE);
            $elem->setLabel('label');
            $elem->setRequired(true);
            $elem->setAttrib('rows', 5);
            $this->addElement($elem);
     
     
            $elem = new \Submit(self::ELEM_SUBMIT);
            $elem->setIgnore(false);
            $elem->setLabel('Add');
            $elem->setOrder(99);
            $this->addElement($elem);
        }
        /**
         * @return mixed
         */
        protected function getMessage()
        {
            return $this->getValue(self::ELEM_MESSAGE);
        }
    }
    class  MySubForm extends Myform
    {
     
        /**
         * @var string
         */
        private $fileTypeAction;
     
     
     
        public function __construct($fileTypeAction)
        {
            if (!in_array($fileTypeAction, \FileType::getActions())) {
                throw new \UnexpectedValueException('Invalid list type action given.');
            }
     
     
            $this->fileTypeAction = $fileTypeAction;
     
     
            parent::__construct();
        }
     
     
        public function init()
        {
            parent::init();
     
     
            $this->setAction(
                \Zend_Controller_Front::getInstance()->getRouter()->assemble(
                    array(
                        'module'     => 'MyModule',
                        'action'     => 'myProcSend',
                        'controller' => 'mysend'
                    ),
                    null,
                    true
                )
            );
     
     
            $elem = new Hidden(self::ELEM_FILE_TYPE_ACTION);
            $elem->setValue($this->fileTypeAction);
            $elem->setRequired();
            $this->addElement($elem);
     
     
            $elem = new Select(self::ELEM_BLACKLIST);
            if ($this->fileTypeAction === \FileType::TYPE_CONST) {
                $elem->setLabel('MyLabel');
            }
            else {
                $elem->setLabel('MySecondLabel');
            }
       }   
    }
    mon controlleur:

    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
    36
    37
     
     
    class MysendController extends Action
    public function myProcSendAction()
        {
            $fileTypeAction = $this->getParam(\Module\Form\MyForm::ELEM_FILE_TYPE_ACTION);
            $this->assertAllowedToSendTypeAction($fileTypeAction);
     
     
     
            $form = $this->getForm($fileTypeAction);
            if (!$form->isValid($this->getHttpRequest()->getPost())) {
                $this->storeForm($form);
     
     
                $this->getFlashMessenger()
                    ->setNamespace('errors')
                    ->addMessage($this->view->translate('Forms.Error.allFieldsCompleted').' ?');
     
     
                $this->getRedirector()
                    ->setCode(303)
                    ->gotoSimpleAndExit('send', null, null, array('fileTypeAction' => $fileTypeAction));
     
     
                return;
            }
    }
     
     
     private function assertAllowedToSendTypeAction($fileTypeAction)
        {
            if (!Authorization::isAllowed(MyPermission::permission($fileTypeAction))) {
                throw new \Exception\NotAuthorizedException();
            }
        }
    }
    et ma vue:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
     
    <div class="two-column">
        <div class="column column-right fullSizeOnPrint" style="width: 89%;">
            <?php echo $this->form ?>
        </div>
    </div>
    en esp�rant que ce sera plus clair.. pour vous..

  10. #10
    Membre �clair� Avatar de Persistant
    Homme Profil pro
    Administrateur de base de donn�es
    Inscrit en
    Septembre 2016
    Messages
    50
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Administrateur de base de donn�es

    Informations forums :
    Inscription : Septembre 2016
    Messages : 50
    Par d�faut
    Merci pour ta r�action..
    Moi je ne te remercie pas par ce que tu n'as pas r�pondu a mes questions (l� ou ca se fini par un "?" )

    Bon, ca fait belle lurette que je ne fait plus de Zend mais je vois d�j� pas mal d'erreur dans le morceau de code que tu nous montre.

    D�j�, dans myProcSendAction() y'a une faute ...
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    $form = $this->getForm($fileTypeAction);
    Il faut peupler/alimenter/assigner la vue avec ton $form. De m�moire on fait un truc dur genre $this->view->assigne("form", $form) ou $this->getRenderer()->form = $form; Bref, je ne sais plus, inspire toi des autre controllers

    Ensuite,
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    if (!$form->isValid($this->getHttpRequest()->getPost())) {
    Lorsque tu fais le redirect (gotoSimpleAndExit) quand ton formulaire n'est pas validit�; de m�moire la requete est en GET et non en POST. C'est a dire que getPost() retourne un tableau vide.

    Et comme on n'a pas le code de de la fonction sendAction() on ne peu pas t'en dire plus

    Dis nous comment tu acc�de a ton formulaire (quel URI tu tape) Et quel valeur t'attend tu a avoir pour $fileTypeAction.

    PS:
    Il y a encore des choses que je remarque comme le fait que tu ne v�rifie pas que la m�thode est bien en POST (en gros il y a une vuln�rabilit�)
    Le fait qu'il semble que tu appel une action depuis une autre action pour mutualiser le traitement de tes formulaires...

  11. #11
    Membre �clair�
    Homme Profil pro
    Symfony - CMS Wordpress - Zend
    Inscrit en
    Septembre 2011
    Messages
    306
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Symfony - CMS Wordpress - Zend
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 306
    Par d�faut
    Pour l'erreur dans le navigateur, non le souci ne viens pas de l�..

    pour le code copier coller ce n'est que l'html gener� dans mon navigateur,
    et oui le form est bien vide, ce n'est pas une erreur..

    j'ai omis de mettre la methode send que corrige ci-dessous..

    voici le controlleur compl�t�:

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
     
    Controller
     
    class MysendController extends Action
    public function myProcSendAction()
        {
            $fileTypeAction = $this->getParam(\Module\Form\MyForm::ELEM_FILE_TYPE_ACTION);
            $this->assertAllowedToSendTypeAction($fileTypeAction);
     
     
            $form = $this->getForm($fileTypeAction);
            if (!$form->isValid($this->getHttpRequest()->getPost())) {
                $this->storeForm($form);
     
                $this->getFlashMessenger()
                    ->setNamespace('errors')
                    ->addMessage($this->view->translate('Forms.Error.allFieldsCompleted').' ?');
     
                $this->getRedirector()
                    ->setCode(303)
                    ->gotoSimpleAndExit('send', null, null, array('fileTypeAction' => $fileTypeAction));
     
                return;
            }
    }
     
     private function assertAllowedToSendTypeAction($fileTypeAction)
        {
            if (!Authorization::isAllowed(MyPermission::permission($fileTypeAction))) {
                throw new \Exception\NotAuthorizedException();
            }
        }
     
     
      public function sendAction()
      {
        $fileTypeAction = $this->getParam('fileTypeAction');
        $this->assertAllowedToSendTypeAction($fileTypeAction);
     
        $this->view->assign('form', $this->getForm($fileTypeAction));
        $this->view->assign('fileTypeAction', $fileTypeAction);
      }
    }
    encore dsl
    peux-tu m'en dire plus sur cette methode "gotoSimpleAndExit" car je n'ai pas tous compris,

    quand je redirige vers mon action la methode doit �tre GET?

  12. #12
    Membre �clair� Avatar de Persistant
    Homme Profil pro
    Administrateur de base de donn�es
    Inscrit en
    Septembre 2016
    Messages
    50
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Administrateur de base de donn�es

    Informations forums :
    Inscription : Septembre 2016
    Messages : 50
    Par d�faut
    encore dsl
    Ne soit pas d�sol�, c'est juste qu'au bout de 140 messages y'a tjrs personne qui t'as rappeler les R�gles du forum et en particulier comment poser une question... Je ne retrouve pas les liens donc je te laisse le soins de te renseigner par toi m�me.

    Sauf erreur de ma part, la fonction storeForm() n'est pas une m�thode du Zend Framework. Peux tu nous la montrer ?

    peux-tu m'en dire plus sur cette methode "gotoSimpleAndExit" car je n'ai pas tous compris, quand je redirige vers mon action la methode doit �tre GET?
    Je ne pourrai pas t'en dire plus que la documentation : https://framework.zend.com/apidoc/1....edirector.html si ce n'est qu'elle utilise tr�s probablement la fonction PHP "native" header() et sans doute exit() (il faudrai regarder le code source de Zend).

    Je n'ai j'amais vu de header("location") en mode POST. Et le protocol HTTP/1.1 a la section 10.3.4 va dans ce sens.

    Dis nous comment tu acc�de a ton formulaire ...
    L� y'avait un piege :-p Ce n'�tait pas une question, mais de l'imp�ratif.

    [...]

    Excuse moi sinzen, je vais faire quelques chose de mal. Mais j'ai l'impression que ce poste va s'�terniser. Alors on va faire simple. Je ne te demande m�me pas de cibler le probl�me mais simplement de poster tout le code (autre que celui du Zend Framework) n�cessaire � la compr�hension de ton probl�me et si t'as de la chance peut �tre que quelqu�un prendra le temps de lire ton code et de d�nicher l�erreur (b�te?) Mais sache que pour augmenter tes chances d'avoir une r�ponse favorable a ta question il aurai fallut que tu lises les r�gles du forum, comment poser une question, le doc fz


    Exemple : Formulaire vide
    Salutation,

    Je travail avec Zend Framework X.X.X depuis X temps sur une application YZ existante en MVC
    Sur un formulaire:


    Quand il est soumis avec des erreurs, le formulaire html de la page ne contient plus aucun �l�ment alors que ... :



    Merci d'avoir pris le temps de m'�couter,
    Cdlt

    PS: Bonne lecture

  13. #13
    Membre �clair�
    Homme Profil pro
    Symfony - CMS Wordpress - Zend
    Inscrit en
    Septembre 2011
    Messages
    306
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Symfony - CMS Wordpress - Zend
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 306
    Par d�faut R�ponse au post de Persistant
    Bonjour,

    Je n'ait pas encore lu la doc du forum mais a l'avenir je posterais correctement..

    pr�cedement sur symfony.

    Je travail sur Zend depuis mars 2017,

    Je suis sur la version 1.12.20 de Zend. MVC

    Quand je soumet mon formulaire,
    je redirige vers la route du formulaire et charge le meme formulaire stocker en Session:

    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
     
    class MysendController extends Action
    public function myProcSendAction()
        {
            $fileTypeAction = $this->getParam(\Module\Form\MyForm::ELEM_FILE_TYPE_ACTION);
            $this->assertAllowedToSendTypeAction($fileTypeAction);
     
     
            $form = $this->getForm($fileTypeAction);
            if (!$form->isValid($this->getHttpRequest()->getPost())) {
                $this->storeForm($form);
     
                $this->getFlashMessenger()
                    ->setNamespace('errors')
                    ->addMessage($this->view->translate('Forms.Error.allFieldsCompleted').' ?');
     
                $this->getRedirector()
                    ->setCode(303)
                    ->gotoSimpleAndExit('send', null, null, array('fileTypeAction' => $fileTypeAction));
     
                return;
            }
    }
     
     private function assertAllowedToSendTypeAction($fileTypeAction)
        {
            if (!Authorization::isAllowed(MyPermission::permission($fileTypeAction))) {
                throw new \Exception\NotAuthorizedException();
            }
        }
    }
    voici ma classe Action que herite mon controller:

    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
    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
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
     
    abstract class Action extends \Zend_Controller_Action
    {
        /**
         * Helper to get better code completion
         *
         * @var \Zend_Controller_Action_Helper_ContextSwitch
         */
        protected $contextSwitch;
     
        public function init()
        {
            parent::init();
     
            $this->contextSwitch = $this->_helper->contextSwitch()
                ->setContext('html', array(
                    'suffix' => ''
                ))
                ->setAutoDisableLayout(true)
                ->setAutoJsonSerialization(true)
                ->setDefaultContext('html');
     
            $this->contextSwitch->initContext();
        }
     
        /**
         * Returns flash messenger action helper
         *
         * @return \Zend_Controller_Action_Helper_FlashMessenger
         */
        protected function getFlashMessenger()
        {
            return $this->_helper->getHelper('flashMessenger');
        }
     
        /**
         * Returns redirector action helper
         *
         * @return \Zend_Controller_Action_Helper_Redirector
         */
        protected function getRedirector()
        {
            return $this->_helper->getHelper('redirector');
        }
     
        /**
         * Returns session namespace for the controller
         *
         * @return \Zend_Session_Namespace
         */
        protected function getSessionNamespace()
        {
            return new \Zend_Session_Namespace(get_class($this));
        }
     
        /**
         * Returns view object
         *
         * @return \Zend_View_Abstract
         */
        protected function getView()
        {
            return $this->view;
        }
     
        /**
         * @param $action
         * @param null $controller
         * @param null $module
         * @param array $params
         * @return mixed
         */
        protected function redirectToReturnUrlOr($action, $controller = null, $module = null, $params = array())
        {
            $red = $this->getRedirector()->setCode(303);
     
            if ($this->_getParam('returnurl', false)) {
                $red->gotoUrl(RequestUtils::decodeUrlFromParameter($this->_getParam('returnurl')));
     
                return;
            }
     
            $red->gotoSimple($action, $controller, $module, $params);
            return;
        }
     
        /**
         * Returns whether the value of the given parameter
         * in the request of this controller is empty.
         *
         * @param string $name
         * @return boolean
         * @see \Macq\Controller\Request\Utils::paramNotEmpty( $name, $this->getRequest() )
         */
        protected final function paramNotEmpty($name)
        {
            return RequestUtils::paramNotEmpty($name, $this->getRequest());
        }
     
        /**
         * Returns whether the value of the given parameter
         * in the request of this controller represents a real integer.
         *
         * @param string $name
         * @return boolean
         * @see \Macq\Controller\Request\Utils::paramRepresentsInt( $name, $this->getRequest() )
         */
        protected final function paramRepresentsInt($name)
        {
            return RequestUtils::paramRepresentsInt($name, $this->getRequest());
        }
     
        /**
         * Returns the value of the given parameter
         * in the request of this controller parsed as integer.
         *
         * @param string $name
         * @return int
         * @throws \Zend_Controller_Request_Exception The value for the given parameter cannot be parsed to an integer
         * @see \Macq\Controller\Request\Utils::getParamParsedToInt( $name, $this->getRequest() )
         */
        protected final function getParamParsedToInt($name)
        {
            return RequestUtils::getParamParsedToInt($name, $this->getRequest());
        }
     
        /**
         * Returns whether the value of the given parameter
         * in the request of this controller represents a real boolean.
         *
         * @param string $name
         * @return boolean
         * @see \Macq\Controller\Request\Utils::paramRepresentsBool( $name, $this->getRequest() )
         */
        protected final function paramRepresentsBool($name)
        {
            return RequestUtils::paramRepresentsBool($name, $this->getRequest());
        }
     
        /**
         * Returns the value of the given parameter
         * in the request of this controller parsed as boolean.
         *
         * @param string $name
         * @return bool
         * @throws \Zend_Controller_Request_Exception The value for the given parameter cannot be parsed to a boolean
         * @see \Macq\Controller\Request\Utils::getParamParsedToBool( $name, $this->getRequest() )
         */
        protected final function getParamParsedToBool($name)
        {
            return RequestUtils::getParamParsedToBool($name, $this->getRequest());
        }
     
        /**
         * Returns whether the value of the given parameter
         * in the request of this controller represents a real float.
         *
         * @param string $name
         * @return boolean
         * @see \Macq\Controller\Request\Utils::paramRepresentsFloat( $name, $this->getRequest() )
         */
        protected final function paramRepresentsFloat($name)
        {
            return RequestUtils::paramRepresentsFloat($name, $this->getRequest());
        }
     
        /**
         * Returns the value of the given parameter
         * in the request of this controller parsed as float.
         *
         * @param string $name
         * @return int
         * @throws \Zend_Controller_Request_Exception The value for the given parameter cannot be parsed to a float
         * @see \Macq\Controller\Request\Utils::getParamParsedToFloat( $name, $this->getRequest() )
         */
        protected final function getParamParsedToFloat($name)
        {
            return RequestUtils::getParamParsedToFloat($name, $this->getRequest());
        }
     
        /**
         * Returns the HTTP request of this controller.
         *
         * @return \Zend_Controller_Request_Http
         * @throws \Zend_Controller_Request_Exception The request of this controller is not a HTTP request
         */
        protected final function getHttpRequest()
        {
            if ($this->getRequest() instanceof \Zend_Controller_Request_Http) {
                return $this->getRequest();
            }
     
            throw new \Zend_Controller_Request_Exception('The request is not a HTTP request');
        }
     
        /**
         * Returns the given string translated by the translator registered in the Zend_Registry
         *
         * If there is no translator registered in the Zend_Registry, the given string is returned.
         *
         * @param  string $tag
         * @return string
         */
        protected final function translate($tag)
        {
            if (\Zend_Registry::isRegistered(Translator::REGISTRY_KEY)) {
                /** @var $translate \Zend_Translate_Adapter */
                $translate = \Zend_Registry::get(Translator::REGISTRY_KEY);
                return $translate->translate($tag);
            }
     
            return $tag;
        }
     
        /**
         * Returns form from session (if exists), otherwise it returns a fresh instance
         *
         * @param $form
         * @return \Zend_Form
         */
        protected function getForm($form)
        {
            // Fetch form from session if possible
            $sessionNamespace = $this->getSessionNamespace();
            if (isset($sessionNamespace->form)) {
                $form = $sessionNamespace->form;
                unset($sessionNamespace->form);
            }
            // Otherwise, create one under default configuration
            else {
                $form = new $form();
            }
     
            return $form;
        }
     
        /**
         * Stores form in session.
         *
         * @param \Zend_Form $form
         */
        protected function storeForm(\Zend_Form $form)
        {
            $this->getSessionNamespace()->form = $form;
        }
     
        /**
         * @return \Zend_Log
         */
        public function getLogger()
        {
            return \Zend_Controller_Front::getInstance()->getParam('bootstrap')->getResource('log');
        }
    }
    voici ma vue:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    <div class="two-column">
        <div class="column column-right fullSizeOnPrint" style="width: 89%;">
            <?php echo $this->form ?>
        </div>
    </div>
    mon formulaire:

    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
    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
    81
    82
    83
     
     
    abstract class MyForm extends \Form\Standard
    {
     
        const ELEM_MESSAGE     = 'message';
        const ELEM_SUBMIT      = 'submit';
     
        public function init()
        {
            parent::init();
     
     
            $elem = new \Textarea(self::ELEM_MESSAGE);
            $elem->setLabel('label');
            $elem->setRequired(true);
            $elem->setAttrib('rows', 5);
            $this->addElement($elem);
     
            $elem = new \Submit(self::ELEM_SUBMIT);
            $elem->setIgnore(false);
            $elem->setLabel('add');
            $elem->setOrder(99);
            $this->addElement($elem);
        }
        /**
         * @return mixed
         */
        protected function getMessage()
        {
            return $this->getValue(self::ELEM_MESSAGE);
        }
    }
    class  MySubForm extends Myform
    {
     
        /**
         * @var string
         */
        private $fileTypeAction;
     
     
        public function __construct($fileTypeAction)
        {
            if (!in_array($fileTypeAction, \FileType::getActions())) {
                throw new \UnexpectedValueException('Invalid list type action given.');
            }
     
            $this->fileTypeAction = $fileTypeAction;
     
            parent::__construct();
        }
     
        public function init()
        {
            parent::init();
     
            $this->setAction(
                \Zend_Controller_Front::getInstance()->getRouter()->assemble(
                    array(
                        'module'     => 'MyModule',
                        'action'     => 'myProcSend',
                        'controller' => 'mysend'
                    ),
                    null,
                    true
                )
            );
     
            $elem = new Hidden(self::ELEM_FILE_TYPE_ACTION);
            $elem->setValue($this->fileTypeAction);
            $elem->setRequired();
            $this->addElement($elem);
     
            $elem = new Select(self::ELEM_BLACKLIST);
            if ($this->fileTypeAction === \FileType::TYPE_CONST) {
                $elem->setLabel('MyLabel');
            }
            else {
                $elem->setLabel('MySecondLabel');
            }
       }   
    }
    Merci pour vos r�action.

  14. #14
    Membre �clair�
    Homme Profil pro
    Symfony - CMS Wordpress - Zend
    Inscrit en
    Septembre 2011
    Messages
    306
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Symfony - CMS Wordpress - Zend
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 306
    Par d�faut Attente d'une r�ponse
    Personne pour m'�clairer?

  15. #15
    Membre �clair� Avatar de Persistant
    Homme Profil pro
    Administrateur de base de donn�es
    Inscrit en
    Septembre 2016
    Messages
    50
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Administrateur de base de donn�es

    Informations forums :
    Inscription : Septembre 2016
    Messages : 50
    Par d�faut
    Bonjour sinzen,

    Je pense que si personne ne r�pond, c'est par ce que tu n'as pas encore poster tout le code n�cessaire a sa compr�hension.

    Il semble que le probl�me viens de la de-s�rialisation de ton formulaire via la session. (ou pas)
    Peux tu nous afficher le fichier temporaire stokant la session (regarde la directive session.save_path dans ton php.ini)
    Peux tout nous afficher le code de la d�s�rialisation avec les include/require


    Bonne chance

  16. #16
    Membre �clair�
    Homme Profil pro
    Symfony - CMS Wordpress - Zend
    Inscrit en
    Septembre 2011
    Messages
    306
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Symfony - CMS Wordpress - Zend
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 306
    Par d�faut Serialize / Unserialize
    Bonjour Persistant,

    Je comprend pas ta demande au sujet des fichiers temporaires en session?
    Je fais un dump du formulaire tous simplement et je le poste?

    Je ne trouve pas mon fichier de deserialisation.. avec les require et include

    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
    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
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
     
    <?php
    namespace Mod\SharedSessions\Session;
     
    class SessionSerializer
    {
        public static function encode($data) {
            return json_encode(self::toJson($data));
        }
     
        public static function decode($data) {
            return self::fromJson(json_decode($data, true));
        }
     
        private static function toJson($data, &$alreadySerialized = array()) {
            $index = array_search($data, $alreadySerialized, true);
            if ($index !== FALSE && $data === $alreadySerialized[$index])
                return array("__id" => $index);
     
            if ($data instanceof \DateTime)
                return $data->format('c');
     
            if ($data instanceof \Closure) {
                throw new \ReflectionException("Can not serialize " . get_class($data));
            }
     
            if (is_object($data)) {
                $alreadySerialized[] = $data;
                $ref = new \ReflectionObject($data);
     
                $class_representation = array(
                    "__id" => count($alreadySerialized) - 1,
                    "__class" => $ref->getName(),
                    "__language" => "PHP",
                    "__data" => array());
     
                $sleep_properties = NULL;
                if (method_exists($data, "__sleep")) {
                    $sleep_properties = $data->__sleep();
                    if ($sleep_properties == NULL) {
                        error_log("__sleep method of class " . $ref->getName() . " returned NULL -> serialize NULL");
                        return NULL;
                    }
                }
     
                $properties = array();
                foreach ($ref->getProperties() as $property) {
                    if (!$property->isPublic()) $property->setAccessible(true);
                    $properties[$property->getName()] = $property;
                }
     
                $ref_parent_walker = $ref;
                while ($parentRef = $ref_parent_walker->getParentClass()) {
                    if ($parentRef == $ref_parent_walker) break;
                    $ref_parent_walker = $parentRef;
                    foreach ($ref_parent_walker->getProperties() as $property) {
                        if ($property->isPrivate()) { // We don't have access to private properties of parent class in child class
                            $property->setAccessible(true);
                            $properties[$property->getName()] = $property;
                        }
                    }
                }
     
                ksort($properties); // Be sure to sort properties by name because they will be sorted in this order on json_decode
     
                foreach ($properties as $propertyName => $property) {
                    if ($sleep_properties != NULL && !in_array($propertyName, $sleep_properties))
                        continue;
     
                    try {
                        $class_representation["__data"][$propertyName] = self::toJson($property->getValue($data), $alreadySerialized);
                    } catch (\ReflectionException $e) {
                        error_log("Could not serialize field " . $propertyName . " of class " . get_class($data) . ": " . $e->getMessage());
                    }
                }
     
                return $class_representation;
            } else if (is_array($data)) {
                $alreadySerialized[] = $data;
                $representation = array("__id" => count($alreadySerialized) - 1, "__data" => array());
                foreach ($data as $key => $value)
                    $representation["__data"][$key] = self::toJson($value, $alreadySerialized);
                return $representation;
            }
            return $data;
        }
     
        private static function fromJson($data, &$alreadyDeserialized = array()) {
            if (is_string($data) && strlen($data) < 32 && preg_match('/^[0-9]{4}-?[0-9]{2}-?[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}[Z0-9:.,+]+$/', $data) > 0) {
     
                try{
                    $date = new \DateTime($data);
                    if ($date instanceof \DateTime)
                        return $date;
                }catch (\Exception $e){ }
            }
            if (is_array($data)) {
                if (!isset($data["__data"])) {
                    if (!isset($alreadyDeserialized[$data["__id"]])) {
                        throw new \ReflectionException("Could not find already deserialized object of id " . $data["__id"]);
                    }
                    return $alreadyDeserialized[$data["__id"]];
                }
     
                if (isset($data["__class"]) && $data["__language"] == "PHP") {
                    $ref = new \ReflectionClass($data["__class"]);
    	            $representation = self::newInstance($ref);
     
                    $alreadyDeserialized[$data["__id"]] = $representation;
     
                    /** @var \ReflectionProperty[] $properties */
                    $properties = array();
                    foreach ($ref->getProperties() as $property) {
                        if (!$property->isPublic()) $property->setAccessible(true);
                        $properties[$property->getName()] = $property;
                    }
     
                    $ref_parent_walker = $ref;
                    while ($parentRef = $ref_parent_walker->getParentClass()) {
                        if ($parentRef == $ref_parent_walker) break;
                        $ref_parent_walker = $parentRef;
                        foreach ($ref_parent_walker->getProperties() as $property) {
                            if ($property->isPrivate()) { // We don't have access to private properties of parent class in child class
                                $property->setAccessible(true);
                                $properties[$property->getName()] = $property;
                            }
                        }
                    }
     
                    foreach($data["__data"] as $propertyName => $property) {
                        $value = self::fromJson($property, $alreadyDeserialized);
                        if (isset($properties[$propertyName])) {
                            $ref_property = $properties[$propertyName];
                            try {
                                if ($propertyName == "name" || $propertyName == "class") {
                                    $setter = "set" . ucfirst($propertyName);
                                    if ($ref->hasMethod($setter))
                                        $representation->$setter($value);
                                    else if ($ref_property->getModifiers() & \ReflectionMethod::IS_PUBLIC)
                                        $representation->$propertyName = $value;
                                } else
                                    $ref_property->setValue($representation, $value);
                            } catch (\ReflectionException $e) {
                                error_log("Reflection error for field " . $propertyName . " of class " . get_class($representation) . ": " . $e->getMessage() . " on line " . $e->getLine());
                            }
                        } else { // dynamic property
                            $representation->$propertyName = $value;
                        }
                    }
     
                    if (method_exists($representation, "__wakeup"))
                        $representation->__wakeup();
     
                    return $representation;
                } else {
                    $representation = array();
                    $alreadyDeserialized[$data["__id"]] = &$representation;
                    foreach ($data["__data"] as $key => $value) {
                        try {
                            $representation[$key] = self::fromJson($value, $alreadyDeserialized);
                        } catch (\ReflectionException $e) {
                            error_log("Reflection error for field " . $key . ": " . $e->getMessage());
                        }
                    }
                    return $representation;
                }
            }
            return $data;
        }
     
        /**
         * @param \ReflectionClass $type
         * @return mixed
         */
    	private static function newInstance($type) {
    	    if ($type->getName() == "Closure" || strpos($type->getName(), "Reflection") === 0) {
    	        throw new \ReflectionException("Can not instantiante type " . $type->getName());
            }
     
    	    if (method_exists($type, "newInstanceWithoutConstructor")) {
                return $type->newInstanceWithoutConstructor();
            }
     
            if (!$type->isInstantiable()) throw new \ReflectionException("Can not instantiate type " . $type->getName());
     
    		if ($type->hasMethod("__construct")) {
    			$constructor = $type->getMethod("__construct");
    			$params = $constructor->getParameters();
    			$args = array();
    			foreach ($params as $param) {
    				if ($param->isDefaultValueAvailable()) break;
    				else if ($param->allowsNull()) $args[] = NULL;
    				else if ($param->isArray()) $args[] = array();
    				else {
    					$class = $param->getClass();
    					if ($class == NULL)
    						$args[] = "";
    					else
    						$args[] = self::newInstance($class);
    				}				
    			}
    			return $type->newInstanceArgs($args);
    		} else {
    			return $type->newInstance();
    		}
     
    	}
    }
    PS: j'ai poster ce code mais je pense pas qu'il soit utilis� quand je sauvegarde mon formulaire en session..
    Dans mon code je ne serialize pas mon formulaire je fais simplement:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    // Save form in session namespace
    $this->getSessionNamespace()->form = $form;

  17. #17
    Membre �clair�
    Homme Profil pro
    Symfony - CMS Wordpress - Zend
    Inscrit en
    Septembre 2011
    Messages
    306
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Symfony - CMS Wordpress - Zend
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 306
    Par d�faut UPDATE
    Je vous confirme que c'est bien ma class SessionSerializer qui serialise mes formulaire..

    Et voi�i le resultat apr�s la s�rialisation:

    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
     
    string(2316) "<form enctype="application/x-www-form-urlencoded" action="/mocontroller/process" method="post"></form>
    <div><li class="hidden"></li>
    <input type="hidden" name="__redirect_invalid" value="/module/controller/add" id="__redirect_invalid"></div>
    <div><li class="hidden"></li>
    <input type="hidden" name="__validation_type" value="add" id="__validation_type"></div>
    <div><label for="monmodel" class="desc optional">Model</label>
    <li></li>
    <div><label for="description" class="desc optional">Description</label>
    <li></li>
    <input type="text" name="description" id="description" value="" class="field text full"></div>
    <div><li class="hidden"></li>
    <input type="hidden" name="id" value="" id="id"></div>
    <div><label for="port" class="desc optional"> Address</label>
    <li></li>
    <input type="text" name="ip" id="ip" value="" class="field text full"></div>
    <div><label for="name" class="desc required">Name *</label>
    <div><li class="buttons"></li>
    <input type="submit" name="submit" id="submit" value="Save" class="ui-state-default ui-corner-all float-right ui-button"></div>
    <div><label for="type" class="desc required">Type *</label>
    J'attends vos r�actions.

  18. #18
    Membre �clair�
    Homme Profil pro
    Symfony - CMS Wordpress - Zend
    Inscrit en
    Septembre 2011
    Messages
    306
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Symfony - CMS Wordpress - Zend
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 306
    Par d�faut
    J'ai finalement r�solu mon souci:

    je fesait un tri sur les element de mon formulaire ce qui le rendait inutilisable.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Message d'alert si formulaire modifie mais pas valide
    Par gigraphe dans le forum G�n�ral JavaScript
    R�ponses: 5
    Dernier message: 13/04/2010, 11h53
  2. message de validation, mais le boutton ne sert � rien!!
    Par dinastar dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 3
    Dernier message: 03/04/2006, 23h31
  3. [Formulaire]Un bouton pour valider deux fomulaires
    Par Le_tzao dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 01/12/2005, 11h08
  4. message SOAP valide
    Par ep31 dans le forum XML/XSL et SOAP
    R�ponses: 1
    Dernier message: 08/11/2005, 10h14
  5. [JSP]formulaire de JSP ne valide pas
    Par rivierem dans le forum Servlets/JSP
    R�ponses: 3
    Dernier message: 21/10/2004, 14h26

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