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_Form_Element requires each element to have a name


Sujet :

Zend Framework PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Webmaster
    Inscrit en
    Février 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Centrafrique

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Février 2012
    Messages : 44
    Par défaut Zend_Form_Element requires each element to have a name
    Bonjour,
    voila pour la rentrée developpement appli sur zend v1
    mais voila c'est comme le velo on est senser pas oublier mais non!

    alors mon soucis le voila
    mon appli fonctionne en crud :mais voila qu en j'essae d'uploader un nouveau client
    ERRRRRROR :An error occurred
    Application error
    Exception information:

    Message: Zend_Form_Element requires each element to have a name
    je sais pas d'ouvient l'erreur :
    voila mon liste bien avec fetcAll
    mais ajout d'un client m'affiche l'erreur

    mon form/Address.php
    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
    <?php
     
    class Application_Form_Address extends Zend_Form
    {
     
        public function init()
        {
            $this->setName('address');
     
            $id=new Zend_Form_Element_Hidden($id);
            $id->addFilter('int');
     
            $first_name=new Zend_Form_Element_Text('first_name');
            $first_name->setLabel('First_name')
                        ->setRequired(TRUE)
                        ->addFilter('StripTags')
                         ->addFilter('StringTrim')
                         ->addValidator('NotEmpty');
     
             $last_name=new Zend_Form_Element_Text('last_name');
             $last_name->setLabel('Last_name')
                        ->setRequired(TRUE)
                        ->addFilter('StripTags')
                         ->addFilter('StringTrim')
                         ->addValidator('NotEmpty');
     
             $email=new Zend_Form_Element_Text('email');
              $email->setLabel('Email')
                        ->setRequired(TRUE)
                        ->addFilter('StripTags')
                         ->addFilter('StringTrim')
                         ->addValidator('NotEmpty');
     
              $phone=new Zend_Form_Element_Text('phone');
              $phone->setLabel('Phone')
                        ->setRequired(TRUE)
                        ->addFilter('StripTags')
                         ->addFilter('StringTrim')
                         ->addValidator('NotEmpty');
     
               $address=new Zend_Form_Element_Textarea('address');
               $address->setLabel('Address')
                        ->setRequired(TRUE)
                        ->addFilter('StripTags')
                         ->addFilter('StringTrim')
                         ->addValidator('NotEmpty');
     
              $created=new Zend_Form_Element_Text('created');
              $created->setLabel('Created')
                        ->setRequired(TRUE)
                        ->addFilter('StripTags')
                         ->addFilter('StringTrim')
                         ->addValidator('NotEmpty');
     
               $modified=new Zend_Form_Element_Text('modified');
             $modified->setLabel('Modified')
                        ->setRequired(TRUE)
                        ->addFilter('StripTags')
                         ->addFilter('StringTrim')
                         ->addValidator('NotEmpty');
     
     
             $envoyer=new Zend_Form_Element_Submit('envoyer');
             $envoyer->setAttrib('id', 'bouttonenvoyer');
     
             $this->addElement(array($id,$first_name,$last_name,$email,$phone,$address,$created,$modified));
            /* Form Elements & Other Definitions Here ... */
        }
     
     
    }
    model/address.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     public function ajouterAddress ($first_name,$last_name,$email,$phone,$address,$created,$modified){
                $data=array(
                  'first_name'=>$first_name,
                    'last_name'=>$last_name,
                    'email'=>$email,
                    'phone'=>$phone,
                    'address'=>$address,
                    'created'=>$created,
                    'modified'=>$modified
                );
                $this->insert($data);
            }
    ainsi que 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
    public function ajouterAction()
        {
            // ajout d une nouvelle entrée dans la table
            $form = new Application_Form_Address();
        $form->envoyer->setLabel('Ajouter');
        $this->view->form = $form;
     
        if ($this->getRequest()->isPost()) {
            $formData = $this->getRequest()->getPost();
            if ($form->isValid($formData)) {
                $first_name = $form->getValue('first_name');
                $last_name = $form->getValue('last_name');
                 $email = $form->getValue('email');
                $phone = $form->getValue('phone');
                 $address = $form->getValue('address');
                 $created = $form->getValue('created');
                $modified = $form->getValue('modified');
                $entry = new Application_Model_DbTable_Address();
                $entry->ajouterAddress($first_name,$last_name,$email,$phone,$address,$created,$modified);
     
                $this->_helper->redirector('index');
            } else {
                $form->populate($formData);
            }
        }
        }
    et voili alors je sollicite votre aide merci d'avance

  2. #2
    Membre chevronné

    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2003
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2003
    Messages : 253
    Par défaut
    Bonjour,

    Ligne 66 de ton formulaire, tu passes à la méthode addElement un tableau de tes éléments de formulaire déjà créé, or addElement attends un nom pour ce champ ou un objet Zend_Form_Element, d'où l'exception.

    La confusion vient probablement du fait que c'était addElements que tu voulais appeler, cette méthode prenant en paramètre un tableau de Zend_Form_Element ou un tableau de définitions d'éléments de formulaire.

    En gros, rajoute un s et ça devrait le faire La réponse était dans le message d'erreur pour le coup, qui devait te pointer la ligne qui cause soucis.

  3. #3
    Membre averti
    Femme Profil pro
    Webmaster
    Inscrit en
    Février 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Centrafrique

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Février 2012
    Messages : 44
    Par défaut
    Merci maitre corbeau de votre reponse mais cela ne change rien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $this->addElements(array($id,$first_name,$last_name,$email,$phone,$address,$created,$modified));

  4. #4
    Membre chevronné

    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2003
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2003
    Messages : 253
    Par défaut
    Bonsoir, on pourrait avoir le message d'erreur exact, idéalement avec le numéro de la ligne concernée et un copier coller de la dite ligne ?

  5. #5
    Membre averti
    Femme Profil pro
    Webmaster
    Inscrit en
    Février 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Centrafrique

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Février 2012
    Messages : 44
    Par défaut
    voici la page d'erreur complete :
    Application error
    Exception information:

    Message: Zend_Form_Element requires each element to have a name
    Stack trace:

    #0 C:\wamp\www\payre-app\application\forms\Address.php(10): Zend_Form_Element->__construct(NULL)
    #1 C:\ZendFramework-1.11.11\library\Zend\Form.php(240): Application_Form_Address->init()
    #2 C:\wamp\www\payre-app\application\controllers\IndexController.php(21): Zend_Form->__construct()
    #3 C:\ZendFramework-1.11.11\library\Zend\Controller\Action.php(516): IndexController->ajouterAction()
    #4 C:\ZendFramework-1.11.11\library\Zend\Controller\Dispatcher\Standard.php(295): Zend_Controller_Action->dispatch('ajouterAction')
    #5 C:\ZendFramework-1.11.11\library\Zend\Controller\Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
    #6 C:\ZendFramework-1.11.11\library\Zend\Application\Bootstrap\Bootstrap.php(97): Zend_Controller_Front->dispatch()
    #7 C:\ZendFramework-1.11.11\library\Zend\Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
    #8 C:\wamp\www\payre-app\public\index.php(26): Zend_Application->run()
    #9 {main}

    Request Parameters:

    array (
    'controller' => 'index',
    'action' => 'ajouter',
    'module' => 'default',
    cela fait un moment que j'ai pas toucher a zend si vous trouvez l'erreur pouvez vous me la commentez svp

  6. #6
    Membre chevronné

    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2003
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2003
    Messages : 253
    Par défaut
    Effectivement, la ligne 10 du formulaire c'est celle là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $id=new Zend_Form_Element_Hidden($id);
    Tu as probablement écrit $id au lieu de 'id', $id n'étant pas défini il lève l'exception, mais tu aurais probablement eut un soucis similaire avec le addElement final également.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/06/2015, 12h27
  2. Element de formulaire et Name dynamique sous IE
    Par khadir dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 14/08/2008, 11h12
  3. [JDOM]Element names cannot contain colons.
    Par mrbungle dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 15/03/2007, 14h15
  4. for each element d'une table
    Par jm_force dans le forum Access
    Réponses: 5
    Dernier message: 17/08/2006, 10h30
  5. comment auto-incrémenté un "element name"
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 30/12/2005, 09h21

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