Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
bonjour
je viens de créer une page d'ajout qui a pour but d'associer une famille à un service c'est coté base de donnée une table qui contient deux clés étrangères
id_fam et num_serv
dans mon code html j' introduit une liste des famille et une liste des service et si je choisie le service et la famille je clic sur le bouton qui met en relation ces clés
le code html est le suivant
Code :
<table class="detailsfour"> <tr><td class="detailsfour1"> <select id="famille_select" name="famille_select" > <option value="">_ _ Liste des familles _ _</option> <?php foreach($this->famille as $fam):?> <option value="<?php echo $fam['id_fam'];?>" ><?php echo $fam['nom_fam'];?></option> <?php endforeach; ?> </select></td></tr> <tr><td class="detailsfour"> <select id="service_select" name="service_select" > <option value="">_ _ Liste des Service _ _</option> <?php foreach($this->service as $serv):?> <option value="<?php echo $serv['num_serv'];?>" ><?php echo $serv['nom_serv'];?></option> <?php endforeach; ?> </select></td></tr> <tr><td> <input type="submit" name="add" value="<?php echo $this->escape($this->buttonText); ?>" />
le code php est le suivant
$req="SELECT * FROM `consultation1`.`service` "; $this->view->service= $GLOBALS['db']->fetchAll($req); $four="SELECT * FROM `consultation1`.`famille` "; $this->view->famille= $GLOBALS['db']->fetchAll($four); $this->view->title = "Ajouter une nouvelle relation Utilisateur Service"; $servfam = new Servicefamille(); if ($this->_request->isPost()) { Zend_Loader::loadClass('Zend_Filter_StripTags'); $filter = new Zend_Filter_StripTags(); $famille_select = ($filter->filter($this->_request->getPost('famille_select'))); $service_select = ($filter->filter($this->_request->getPost('service_select'))); ////////***Les test**////////// if ($famille_select !='' && $service_select!='') { $data = array( 'id_fam' => $famille_select, 'num_serv' => $service_select, ); $servfam = new Servicefamille(); $servfam->insert($data); $this->_redirect('/'); return; } else { echo" Vous devez remplir tous les champs !"; } } $this->view->servfamille = $servfam->createRow();; // additional view fields required by form $this->view->action = 'servfam'; $this->view->buttonText = 'Ajouter Relation'; }
mais lorsque je clic sur le bouton rein ne se passe je reste dans la même page et aucune action n'est faite
Est ce que mon code manque de chose ??? ou il comporte des fautes
Dans la plus part d'ajout on utilise la méthode escape() est ce c'est obligatoire franchement je ne sais pas quel est le rôle de cette fonction
Aidez moi s'il vous plais.
Hors ligne
Etes vous sure que rien ne se passe au niveau de votre BD?
Vérifiez s'il y a des mises à jour..
Pour simplifier ton code essaie d'utiliser les models en créant une classe pour chaque table.
Pour rediriger il faut utiliser
$this->_redirect('/Controller/action');
Bon travail
Dernière modification par ziedb (07-04-2008 13:30:50)
Hors ligne
merci pour ta réponse
concernant le model j'ai pas travailler avec tu peux me donner un exemple simple de les utilisés concernant mes tables ???
merci beaucoup
Hors ligne
Dans ta classe tu déclare une classe cClients.php dans ton répertoire Models
class cClients extends Zend_Db_Table { protected $_name = clients;//clients est le nom de ta table dans la base de donnée }
Enuite dans ton controller
$table = new cClients(); $this->view->data = $table->fetchrow($table->select()->where('id = ?', $id));
Puis dans ton view tu fais
<table> <?php foreach($this->data as $table) : ?> <tr> <td><?php echo $this->escape($table->id);?></td> <td><?php echo $this->escape($table->client);?></td> <td><?php echo $this->escape($table->Adresse);?></td> <td><?php echo $this->escape($table->tel);?></td> </tr> </table> <?php endforeach; ?>
J'espère que ça t'aideras. Si tu veux tu m'envoies un mail et je te réenvoies un exemple complet.
Bon travail
Hors ligne
merci beaucoup ça sera très gentil de ta part si tu m'envoie un exemple complet
j'ai ecrit dans mon controller
$this->view->title = "Chercher un fournisseur"; $fournisseurs=new Fournisseur(); $this->view->data = $fournisseurs->fetchrow($fournisseurs->select());
dans ma vue
<?php foreach($this->data as $four) : ?> <tr > <td> <li style='text-align:left'> <a class="categ" onclick="details_categfam(<?php echo $this->escape($four->nom_four); ?>);" href="#"><?php echo $this->escape($four->nom_four);?></a> </td> <input type="hidden" name="num_four" value="<?php echo $this->escape($four->num_four); ?>"/></li> <td ><?php echo $this->escape($four->adr_four);?></td> <td ><?php echo $this->escape($four->tel_four_1);?></td> <?php endforeach; ?>
mais la liste n'affiche rien !!!
Dernière modification par yosra (07-04-2008 17:00:00)
Hors ligne
Pour récupérer tous les enregistrements il faut utiliser fetchAll()
$this->view->title = "Chercher un fournisseur"; $fournisseurs=new Fournisseur(); $this->view->data = $fournisseurs->fetchAll();
Dans ta vue, Il faut que tu utilise le même nom de ta variable dans le view et le controleur c-ad $fournisseurs
et non pas $four.
<?php foreach($this->data as $fournisseurs) : ?> <tr > <td> <li style='text-align:left'> <a class="categ" onclick="details_categfam(<?php echo $this->escape($four->nom_four); ?>);" href="#"><?php echo $this->escape($fournisseurs->nom_four);?></a> </td> <input type="hidden" name="num_four" value="<?php echo $this->escape($fournisseurs->num_four); ?>"/></li> <td ><?php echo $this->escape($fournisseurs->adr_four);?></td> <td ><?php echo $this->escape($fournisseurs->tel_four_1);?></td> <?php endforeach; ?>
Pour le mail, je ne peux pas joindre de fichiers avec le formulaires du forum.
Dernière modification par ziedb (07-04-2008 18:26:05)
Hors ligne
Bonjour,
pour avoir un exemple il y a ce tutoriel.
http://g-rossolini.developpez.com/tutor … k/debuter/
Bon travail & bonne journée
Hors ligne
bonjour ,
merci bien pour la correction ça marché vraiment tu est super merci beaucoup
ainsi pour le tuto
bonne journee
Hors ligne