Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework
Zend Framework Forum d'entraide sur la programmation PHP avec Zend Framework. Avant de poster -> FAQ ZF, Cours ZF
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 13/07/2011, 09h52   #1
Membre régulier
 
Inscription : février 2011
Messages : 114
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 114
Points : 77
Points : 77
Par défaut Création de liens avec l'aide de vue URL

Bonjour,

Je voudrais créer plusieurs liens à partir de requête de que je reçois.
Je m'explique, j'ai un formulaire de recherche qui contient plusieurs champs qui servent à l'affichage de résultats selon un ordre de tri en utilisant la pagination.


Voici un exemple d'url que je recois:
www.monsite.com/monControleur1/monAction1/id/2

Dans la page de résultat, j'ai crée différents liens qui renvoie l'utilisateur vers d'autres pages du site.

Par exemple:
www.monsite.com/monControleur2/monAction2/id/3

Pour cela , j'ai utilisé le helper de vue 'url' de la façon suivante:
Code :
1
2
 
$this->url(array('controller'=>'monControleur2', 'action'=>'monAction2', 'id'=>3));
Ce lien fonctionne, il m'affiche bien la bonne page mais quand je reviens sur ma page de résultats de ma recherche et que j'essaye de passer à la page suivante de mes résultats, je perds les paramètres de ma recherche: j'arrive bien sur la page suivante mais les paramètres de recherche ont été réinitialisé.

Comme si le fait de cliquer sur un lien (crée via l'aide de vue URL) provoquait la perte des paramètres saisis dans mon formulaire de recherche.

Est-ce que quelqu'un a déjà rencontré ce problème avant moi???

Merci d'avance pour vos réponses...
flilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 14h15   #2
ovh
Rédacteur
 
Avatar de ovh
 
Homme
Ingénieur développement logiciels
Inscription : mai 2002
Messages : 3 725
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : mai 2002
Messages : 3 725
Points : 6 310
Points : 6 310
Je parie que tes paramètres proviennent de ton formulaire de recherche en POST, et si tu les mets dans l'URL ça devient du GET donc forcément la recherche ne marche plus

Le plus simple serait de passer les paramètres de recherche en GET et ne pas oublier de les ajouter à chaque lien de pagination pour qu'ils se propagent de page en page.
Sinon tu peux aussi les mémoriser en session.
__________________
Tutoriels sur les UPS, e-commerce, PHP, critiques de livres...

Ce forum est fait pour vous et surtout par vous, merci d'en respecter les règles.
Je n'ai rien à voir avec la société www.ovh.com !
ovh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 14h37   #3
Membre régulier
 
Inscription : février 2011
Messages : 114
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 114
Points : 77
Points : 77
Merci pour ta réponse.

En effet, les paramètres de mon formulaire de recherche son transmis en POST, et comme j'utilise ZEND_PAGINATOR, mon formulaire de recherche est mis en session afin de garder ces paramètres lors d'un changement de page.

Je vais essayer d'être plus clair sur le fonctionnement de mon formulaire:

- j'ai un certain nombre d'éléments de mon formulaire à saisir par l'utilisateur qui sont transmis via la méthode POST et mon formulaire est mis en session.
- une fois mon formulaire validé, une requête est exécutée et s'affiche alors les résultats de cette requête. Le nombre de résultats affichés pouvant être grand, j'utilise le système de pagination à l'aide de Zend_Paginator. Du fait d'avoir mis mon formulaire en session, mes résultats s'affichent correctement, et je peux passer d'une page à l'autre sans problème.
- dans mes résultats, j'affiche certains liens en utilisant l'aide de vue URL. Quand je clique sur un lien, en affichant la page dans un nouvel onglet, le lien fonctionne bien. Quand je reviens sur mon onglet qui contenait les résultats de ma recherche et que je veux passer à la page suivante des résultats, je perds mes paramètres de recherche qui sont réinitialisés.

Le fait de cliquer sur mon lien url (GET) aurait-il provoquer la perte des paramètres saisis dans le formulaire (POST)? Si oui comment y remédier????
Pourtant mon formulaire est gardé en session, comment cela se fait-il que je perdes mes paramètres de recherche???

Merci d'avance...
flilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 14h50   #4
ovh
Rédacteur
 
Avatar de ovh
 
Homme
Ingénieur développement logiciels
Inscription : mai 2002
Messages : 3 725
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : mai 2002
Messages : 3 725
Points : 6 310
Points : 6 310
L'objet formulaire ne contient pas le POST... Ca n'a pas de sens de mettre un formulaire en session.
__________________
Tutoriels sur les UPS, e-commerce, PHP, critiques de livres...

Ce forum est fait pour vous et surtout par vous, merci d'en respecter les règles.
Je n'ai rien à voir avec la société www.ovh.com !
ovh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 15h02   #5
Membre régulier
 
Inscription : février 2011
Messages : 114
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 114
Points : 77
Points : 77
je ne comprends pas????

Mon formulaire est mis en session car d'une part je peux récupérer mes paramètres de recherche lors des changement de page mais aussi parcce qu'il est composé de sous formulaire que l'on peut valider avant de valider le formulaire entièrement. Ce fonctionnement était utilisé avant ma particiapation au projet et j'ai continué ainsi.

je ne vois pas l'objet de ta réponse, peux tu être plus précis????
flilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 16h36   #6
Membre régulier
 
Inscription : février 2011
Messages : 114
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 114
Points : 77
Points : 77
Bon je vais répondre tout seul à mon problème.

Dans les liens que j'affiche, je fais appel à d'autres controleurs pour lesquels j'ai défini des actions qui vont pour certaines "vider" ma session et donc mon formulaire de recherche ne sera pas sauvegardé.

Il faut donc que je revoie la définition de ces actions dans mes contrôleurs vers lesquels je fais un lien de manière à garder mon formulaire de recherche en session.

Si quelqu'un sait si cela est possible, merci de m'en faire part
flilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 14h58   #7
Membre régulier
 
Inscription : février 2011
Messages : 114
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 114
Points : 77
Points : 77
Bonjour,

encore une fois je vais me répondre à moi même

Ce que je faisais au début dans mes controleurs pour "vider" les formulaires mis en sessions:
Code :
1
2
3
4
5
6
7
 
//Mise en session d'un formulaire
$formNamespace = new Zend_Session_Namespace('myForms');
$formNamespace->myForm1 = $myForm1;
 
// Suppression des formulaires en session
$formNamespace->unsetAll();
Ce que je fais maintenant de manière à ne pas supprimer tous les formulaires:
Code :
1
2
3
4
5
6
7
 
//Mise en session d'un formulaire
$formNamespace = new Zend_Session_Namespace('myForms');
$formNamespace->myForm1 = $myForm1;
 
// Suppression du formulaire concerné uniquement
unset($formNamespace->myForm);
Si ça peut aider!!!!
flilou 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 23h58.


 
 
 
 
Partenaires

Hébergement Web