Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > Zend_Form
Zend_Form Forum d'entraide pour le composant Zend_Form du Zend Framework (création de formulaires, helpers, AJAX etc.). Avant de poster -> FAQ Zend_Form.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/03/2011, 13h21   #1
Invité de passage
 
Homme
Administrateur de base de données
Inscription : mars 2011
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mars 2011
Messages : 21
Points : 0
Points : 0
Par défaut Formulaire Simple Problème

Bonjour,

Je suis un nouvel utilisateur de Zend et donc un peu nul.

Je souhaite faire un formulaire de membre et les fonctions CRUD élémentaires.

Tout d'abord les Membres sont dans une liste à sélection unique trier par ordre de nom et le premier membre est sélectionné par défaut (je n'arrive pas à faire ça)

Ce que j'ai réussi à faire, ma liste contenant les membres, le bouton add qui ajoute un membre.

Ce que je n'arrive pas à faire :

- Soumettre l'id du membre sélectionné dans la liste à l'action edit ou supprimer

Voici mon controller
Code :
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
<?php
 
class BiblioController extends Zend_Controller_Action
{
 
    public function init()
    {
 
    }
 
    public function indexAction()
    {
        $form = new Application_Form_Index();
        $this->view->form = $form;
        // action body
    }
 
    public function addAction()
    {
        $form = new Application_Form_Membre();
        $form->submit->setLabel('Add');
        // action body
        if ($this->getRequest()->isPost()) {
            $formData = $this->getRequest()->getPost();
            if ($form->isValid($formData)) {
                $nom = $form->getValue('nom');
                $prenom = $form->getValue('prenom');
                $adresse = $form->getValue('adresse');
                $localite = $form->getValue('localite');
                $npa = $form->getValue('npa');
                $membre = new Application_Model_DbTable_Membre();
                $membre->addMembre($nom, $prenom, $adresse, $npa, $localite);
                $this->_helper->redirector('index');
            } else {
                $form->populate($formData);
            }
        }
        $this->view->form = $form;
    }
 
    public function editAction()
    {
        $form = new Application_Form_Membre();
        $form->submit->setLabel('Save');
        $this->view->form = $form;
        if ($this->getRequest()->isPost()) {
            $formData = $this->getRequest()->getPost();
            if ($form->isValid($formData)) {
                $id = (int)$form->getValue('id');
                $nom = $form->getValue('nom');
                $prenom = $form->getValue('prenom');
                $adresse = $form->getValue('adresse');
                $localite = $form->getValue('localite');
                $npa = $form->getValue('npa');
                $membre = new Application_Model_DbTable_Membre();
                $membre->updateMembre($id, $nom, $prenom, $adresse, $npa, $localite);
                $this->_helper->redirector('index');
            } else {
                $form->populate($formData);
            }
        } else {
            $id = $this->_getParam('id', 0);
            if ($id > 0) {
                $membre = new Application_Model_DbTable_Membre();
                $form->populate($membre->getMembre($id));
            }
        }
    }
 
    public function deleteAction()
    {
        if ($this->getRequest()->isPost()) {
            $del = $this->getRequest()->getPost('del');
            if ($del == 'Yes') {
                $id = $this->getRequest()->getPost('id');
                $membre = new Application_Model_DbTable_Membre();
                $membre->deleteMembre($id);
            }
            $this->_helper->redirector('index');
        } else {
            $id = $this->_getParam('id', 0);
            $membre = new Application_Model_DbTable_Membre();
            $this->view->membre = $membre->getMembre($id);
        }
    }
}
L'erreur se trouve dans l'action edit et supprimer dont je ne trouve pas la solution

Mon form
Code :
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
<?php
 
class Application_Form_Index extends Zend_Form
{
 
    public function init()
    {
        /* Form Elements & Other Definitions Here ... */
        $membre = new Application_Model_DbTable_Membre();
        $listeMembre = $membre->fetchAll(null,'Nom');
        $array_membre = array();
        foreach ($listeMembre as $membre) :
        $nomPrenom = $membre->Nom.' '.$membre->Prenom;
        $array_membre[$membre->NoMembre] = $nomPrenom;
        endforeach;
        $selectMembre = new Zend_Form_Element_Select('listeMembre');
        $selectMembre->setLabel('Liste des membres')
                     ->setAttrib('size',25)
                     ->setMultiOptions($array_membre);
 
        $this->addElement($selectMembre);
 
        $add = new Zend_Form_Element_Button('add');
        $add->setLabel('Nouveau')
            ->setAttrib('onclick','window.location =\''.$this->getView()->url(array('controller'=>'biblio','action'=>'add')).'\' ');
 
        $modify = new Zend_Form_Element_Submit('modify');
        $modify->setLabel('Modifier')
               ->setAttrib('onclick','window.location =\''.$this->getView()->url(array('controller'=>'biblio','action'=>'edit')).'\' ');
 
        $delete = new Zend_Form_Element_Submit('delete');
        $delete->setLabel('Supprimer')
               ->setAttrib('onclick','window.location =\''.$this->getView()->url(array('controller'=>'biblio','action'=>'delete')).'\' ');
 
        $this->addElements(array($add,$modify,$delete));
 
    }
}
C'est dans cette partie là que je ne sais pas comment soumettre l'id du membre sélectionné à voir...


Je pense que la solution est simple mais je n'arrive pas à la trouver. Merci à la personne qui me trouvera la réponse


EDIT ::: Au fait ce que je n'arrive pas à faire est de faire soumettre l'id du membre sélectionné dans la fenêtre principale à l'action edit ?
mbagiella est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 22h19   #2
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 8
Points : 11
Points : 11
Ton onClick sur ton bouton Submit ne doit pas poster le formulaire il fait simplement une redirection.
Vois du coté de l'action de ton formulaire afin de poster ton formulaire vers l'action Edit ou Delete
peterexia est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h25.


 
 
 
 
Partenaires

Hébergement Web