Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
J'ai ajouté Zned_Paginator pour avoir une liste sur plusieurs pages.
Ca marche bien mais quand je passe une form avec un bouton submit, je retourne au sommaire à la première page.
Dans le sommaire, je click sur un lien qui donne vers un formulaire (pour modifier), et quand je clique sur submit, je vais à la page 1 du sommaire.
Les URL donne :
- $SITE/list/page/20
- $SITE/edit/page/20/id/467
------ le SUBMIT
- $SITE/list
comment faire pour que la form renvoie avec la page
Merci
Hors ligne
J'ai rencontré ce genre de problème pour créer des filtres sur mes pages à l'aide de formulaire. Je te fourni ma solution peut-être un peu barbare mais qui fonctionne.
Tout d'abord mon tableau avec au debut mon formulaire, l'astuce se trouve dans le lien activé en javascript
<form id="outils" name="outils" method="post" action="#" > Trier par : <select name="tri" id="tri" onchange="window.location.href='<?php echo $this->baseUrl();?>/Fichier/listeclients/tri/'+this.value+'/filtre/'+$('select#filtre').attr('value')+'/page/<?php echo $page->getCurrentPageNumber();?>'" > <?php if($this->tri=="code_identif_cci"){ echo '<option value="code_identif_cci" selected>Code cci</option>'; }else{ echo'<option value="code_identif_cci" >Code cci</option>';} if($this->tri=="Formes_juridiques_id"){ echo'<option value="Formes_juridiques_id" selected>Forme juridique</option>'; }else{ echo'<option value="Formes_juridiques_id">Forme juridique</option>';} if($this->tri=="nom_complet"){ echo'<option value="nom_complet" selected>Nom</option>'; }else{ echo'<option value="nom_complet">Nom</option>';} ?> </select> Filtrer par type : <select name="filtre" id="filtre" onchange="window.location.href='<?php echo $this->baseUrl();?>/Fichier/listeclients/tri/'+$('select#tri').attr('value')+'/filtre/'+this.value+'/page/<?php echo $page->getCurrentPageNumber();?>'" > <?php if($this->filtre==""){ echo '<option value="" selected>Tous</option>'; }else{ echo'<option value="">Tous</option>';} if($this->filtre=="0"){ echo '<option value="0" selected>Ni ach.,ni vend.</option>'; }else{ echo'<option value="0">Ni ach.,ni vend.</option>';} if($this->filtre=="1"){ echo'<option value="1" selected>Acheteur</option>'; }else{ echo'<option value="1">Acheteur</option>';} if($this->filtre=="2"){ echo'<option value="2" selected>Vendeur</option>'; }else{ echo'<option value="2">Vendeur</option>';} ?> </select> </form> <table id="liste"> <tr> <td colspan=1 align="center"><a href="<?php echo $this->url(array('controller'=>'Fichier','action'=>'ajouterclient')); ?>"><img src="<?php echo $this->baseUrl(); ?>/public/image/picto/ajouter.png" border=0 alt="Ajouter"/></a></td> <td colspan=7 align="center"><?php echo $this->clients; ?></td> </tr> <tr> <th>Code cci</th> <th>Type</th> <th>Forme juridique</th> <th>Nom</th> <th>Coordonnées</th> <th>Identifie<br/> bateaux</th> <th>Propriétaire<br/>emballages</th> <th></th> </tr> <?php foreach ($this->clients as $client) { ?> <tr> <?php if($client->code_identif_cci==0) { echo ' <td>NC</td>'; }else{ echo ' <td>'.$client->code_identif_cci.'</td>'; } echo ' <td>' . $client->getTypes()->nom_complet .'</td>'; echo ' <td>' . $client->getFormes()->nom_court .'</td>'; echo ' <td>' . $client->nom_complet .'</td>';?> <td align="center"><a href="#" onclick="window.open('<?php echo $this->BaseUrl();?>/Fichier/coordonneesclient/id/<?php echo $client->id;?>','','menubar=no, status=no, scrollbars=yes, width=400, height=300');" ><img src="<?php echo $this->baseUrl(); ?>/public/image/picto/voir.png" border=0 alt="Voir"/></a></td> <?php echo ' <td align="center">' . $client->getIdentifie().'</td>'; echo ' <td align="center">' . $client->getProprio().'</td>'; echo ' <td width="65px" align="center"> '; echo ' <a href="'.$this->url(array('controller'=>'Fichier','action'=>'modifierclient','id'=>$client->id)).'"><img src="'.$this->baseUrl().'/public/image/picto/modifier.png" border=0 alt="Modifier"/></a>'; echo ' <a href="'.$this->url(array('controller'=>'Fichier','action'=>'supprimerclient','id'=>$client->id)).'"><img src="'.$this->baseUrl().'/public/image/picto/supprimer.png" border=0 alt="Supprimer"/></a> '; echo ' </td>'; ?> </tr> <?php } ?> <tr> <td colspan=1 align="center"><a href="<?php echo $this->url(array('controller'=>'Fichier','action'=>'ajouterclient')); ?>"><img src="<?php echo $this->baseUrl(); ?>/public/image/picto/ajouter.png" border=0 alt="Ajouter"/></a></td> <td colspan=7 align="center"><?php echo $this->clients; ?></td> </tr> </table>
Ensuite le traitement dans mon controleur qui reste un traitement basique de formulaire
public function listeclientsAction(){ $this->view->title="Clients"; $dbAdapter = Zend_Registry::get('dbAdapter'); if ($this->_getParam('tri')!=null) { $tri=$this->_getParam('tri'); if($tri=="code_identif_cci") $tri=array("code_identif_cci","Formes_juridiques_id","nom_complet"); if($tri=="Formes_juridiques_id") $tri=array("Formes_juridiques_id","nom_complet"); if($tri=="nom_complet") $tri="nom_complet"; }else{ $tri=array("code_identif_cci","Formes_juridiques_id","nom_complet"); } if ($this->_getParam('filtre')!=null && $this->_getParam('filtre')!="" ) { $where="closed is null and Types_clients_id=".$this->_getParam('filtre')." "; $filtre=$this->_getParam('filtre'); }else{ $where="closed is null"; $filtre=""; } $liste=new Clients(); $liste=$liste->fetchAll($where, $tri); $page = Zend_Paginator::factory($liste); $page->setPageRange(5); $page->setCurrentPageNumber($this->_getParam('page', 1)); $page->setItemCountPerPage($this->_getParam('par', 25)); $this->view->clients = $page; $this->view->tri=$tri; $this->view->filtre=$filtre; $this->render(); }
Je ne sais pas si c'est ce que tu cherches à faire mais n'hésite pas à me poser des questions si tu as besoin.
Ciao
Hors ligne
Merci,
Je pensais que ce serait beaucoup plus simple.
Hors ligne
Y a rien de très compliquer, en fait tu crées toi même tes liens à l'aide de javascript pour qu'il récupère les anciennes valeurs et y intègre les nouvelles. Ce lien renvoie sur la même page et tu traite le contenu de ton lien dans ton controleur en testant si les variables existent et en traitant leur contenu
Hors ligne