Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
J'ai une page qui est le résultat d'un recherche avec pagination.
Sur cette page, un tableau avec pour chaque ligne un bouton effacer.
Je voudrais l'action de ce bouton puisse me renvoyé sur la page de recherche.
Comment procéderiez vous ??
Sachant que cette action peut aussi être appelé "d'ailleurs" et que donc, selon le cas d'ou je viens, je ne veux pas forcément revenir sur cette recherche.
Merci
Dernière modification par nORKy (04-12-2008 17:14:05)
Hors ligne
Salut,
J'aurais tendance à me tourner soit vers les sessions, soit vers une requête XMLHttp pour ne pas changer de page (mais ça veut dire que tu dois aussi gérer le rafraichissement de ta liste).
A+ benjamin.
Hors ligne
AJAX c'est prévu et simple, mais c'est ma règle d'or :
Une action doit toujours fonctionner d'abord sans AJAX
Hors ligne
Une action doit toujours fonctionner d'abord sans AJAX
Pour quelle raison ?
Le traitement ne sera pas forcément le même en Ajax et Non Ajax, donc à part te foutre toi même un handicap (et je suppose aussi que tu adores t'auto-flageller), je ne vois pas l'intérêt.
Peut-être pour ceux qui désactivent javascript, mais ceux là ne vont pas sur internet. Du moins, il ne doivent pas réussir à faire grand chose !
Sans Ajax, je me tournerai comme j'ai dit, vers les sessions. Mais si ensuite tu passes à de l'Ajax ça ne te sera pas très util
A+ benjamin.
Hors ligne
Delprog a écrit:
Une action doit toujours fonctionner d'abord sans AJAX
Pour quelle raison ?
Parce que c'est mon choix
Toutes mes fonctions sont capables de fonctionner avec ou sans AJAX.
La pluspart du temps, l'ajout d'un 'ajaxcontext' suffit.
je vais me tourner vers les sessions..
Il doit surement y avoir un moyen de récuperer le nom de la route courante.
Hors ligne
Donc, voila comment je vais procéder :
$session = new Zend_Session_Namespace('search'); $session->search_route = Zend_Controller_Front::getInstance() ->getRouter() ->getCurrentRoute(); $session->search_params = $this->_request->getParams(); $session->setExpirationHops(1);
Un test dans mon action appelé sur la présence de $session->search_route suffira pour faire la redirection sur l'ancienne page.
merci
Hors ligne
Peut-être pour ceux qui désactivent javascript, mais ceux là ne vont pas sur internet. Du moins, il ne doivent pas réussir à faire grand chose !
Il y a quand meme 10% des gens qui le desactivent, je sais c'est triste, mais faut faire avec
A quoi sert la methode setExpirationHops() ? c'est assez flou dans la doc
Dernière modification par Guillhomme (05-12-2008 11:18:09)
Hors ligne
Hello,
setExpirationHops : plutôt que de gérer une durée de validité, tu gère le nombre de requête HTTP durant laquelle elle sera valide. A chaque requête, tu fais -1. A 0, tu effaces la variable.
A+
Hors ligne
Il y a quand meme 10% des gens qui le desactivent, je sais c'est triste, mais faut faire avec
Dans ma tête, c'est tant pis pour eux. C'est comme tenir encore compte des personnes qui sont en bas débit.
Si on tient compte de ces gens là, on avance jamais. Et vraiment, une personne qui désactive javascript, je me demande bien ce qu'elle peut faire sur le net, même les webmails l'utilisent sans vergogne
A notre grand malheur, celui dont on doit encore tenir compte absolument c'est IE6. Et rien que ça c'est dramatique et c'est à se demander si dans le futur les résultats ne seront pas différents dans IE6, 7, 8, 9 et 10 ...etc.
Après il y a des limites c'est sur, je suis pour des appli/sites simples et rapides. Mais il ne faut pas exagérer, je suis contre l'état d'esprit du "Et ceux qui ont un moteur de Solex pour faire avancer leur Ferrari t'en fais quoi ?"
A+ benjamin.
Dernière modification par Delprog (05-12-2008 14:12:34)
Hors ligne
Sinon, concernant mon affaire, ca marche pas encore.
Car, mon problème, c'est que le résultat de ma recherche est affiché suite à un forward.
Du coups, quand j'apelle la route précédante, je retombe sur le formulaire précédant, qui lui, comme il constante que ce n'est pas un post, affiche mon formulaire
Mais, je vais y arrivé
Vous pensez que c'est 'psychologiquement' un problème, si, après avoir posté un formulaire, on fait un redirect ?
Car, le redirect m'enverrai vers qqchose comme /search/key/value/key/value
Ainsi, j'aurais la bonne route et le routour à cette page correcte
Hors ligne
Delprog a écrit:
Dans ma tête, c'est tant pis pour eux. C'est comme tenir encore compte des personnes qui sont en bas débit.
Ouaip, sauf que le bas débit est de plus en plus courant (3G / Edge). Ce n'est ni du 56K ni de l'ADSL. Coupe toi de tes clients, si tu veux...
Delprog a écrit:
Si on tient compte de ces gens là, on avance jamais. Et vraiment, une personne qui désactive javascript, je me demande bien ce qu'elle peut faire sur le net, même les webmails l'utilisent sans vergogne
Faux, si tu dev correctement, ca ne te genera en rien. Ton javascript en non intrusif permet une meilleur experience utilisateur, ajoute des fonctionnalités non vitale. C'est une surcouche à l'HTML comme peut l'etre le CSS. L'un apporte l'interactivité, l'autre le visuel. En plus, tu donnes l'exemple du webmail qui est un applicatif web, et a donc une problématique différente du site (corporate, blog, commercial, etc.). Pour info, Gmail est utilisable avec JS désactivé et en version bas débit
Delprog a écrit:
A notre grand malheur, celui dont on doit encore tenir compte absolument c'est IE6. Et rien que ça c'est dramatique et c'est à se demander si dans le futur les résultats ne seront pas différents dans IE6, 7, 8, 9 et 10 ...etc.
La, tu restes dans la même problématique. Ton code marcherai sans JS, tu n'aurais qu'a proposer cette version au utilisateur de IE (comment ca j'exagère )
Delprog a écrit:
Après il y a des limites c'est sur, je suis pour des appli/sites simples et rapides. Mais il ne faut pas exagérer, je suis contre l'état d'esprit du "Et ceux qui ont un moteur de Solex pour faire avancer leur Ferrari t'en fais quoi ?"
Ta manière d'aborder le probleme me semble erroné, d'ou ta prise de position.
Hors ligne
Salut ndesaleux,
Réponse intéressante, bien qu'à la limite de la provocation :
Faux, si tu dev correctement, ca ne te genera en rien.
Le JS comme tu le dis n'est plus aujourd'hui utilisé uniquement pour du confort visuel. C.f. La merveilleuse librairie Ext.js (j'exagère, il y a des défauts).
Là tu généralises ton utilisation du javascript à l'ensemble des codeurs.
Comme tu le dis, il y a différentes problèmatiques, et évidemment le JS n'est pas utilisé de la même manière et dans le même but d'une à l'autre. J'ai volontairement généralisé mes propos pour appuyer sur un problème que doivent rencontrer la plupart des webdesigner, la frustration.
Quand je parlais d'IE6, je n'étais plus dans le sujet du JS, je généralisais mes propos à l'ensemble du montage d'un site, pendant lequel tu perds des heures à obtenir les mêmes résultats dans tous les navigateurs. Et aujourd'hui c'est IE6, qui reste très utilisé, qui est le plus bloquant. Ex: PNG transparent, margin qui ne se comportent pas de la même façon, min-width, min-height et j'en passe (effectivement je ne parle que de CSS, mais il y a d'autres points).
Pour la vitesse de connexion, la 3G est plus lente que l'ADSL, mais c'est bien au dessus du 56k, et de plus je parlais par expérience. C'est à dire, devoir concevoir plusieurs versions de tes vues pour répondre à ce très faible pourcentage de personnes qui pensent encore survivre dans le monde professionnel sans connexion haut débit (je parle de clients, et ceux qui ont besoin d'internet, pas d'utilisation perso, c'est différent).
Ma décision est de satisfaire le plus grand nombre, mais pas la petite communauté de paranoïaques qui désactivent javascript et autres.
Pour conclure, je rebondissais sur une réflexion, le sujet est bien plus subtile dans la réalité d'un projet.
Je trouve ton jugement un peu tranchant et non fondé. Quand on aborde une personne, il ne faut pas essayer de deviner ses compétences et réagir comme si tu savais ce qu'elle vaut, car tu ne peux pas savoir à qui te confronte. Alors un peu de subtilité dans ta façon de t'exprimer serait la bienvenue, plutôt que de formuler une contre-attaque
Maintenant, arrêtons de polluer le sujet de nORKy.
D'ailleurs :
Vous pensez que c'est 'psychologiquement' un problème, si, après avoir posté un formulaire, on fait un redirect ?
Non, pas du tout, au contraire. Ca évite une manipulation supplémentaire de l'utilisateur (pour revenir là où il se trouvait), mais aussi de re-poster deux fois les mêmes informations
A+ benjamin.
Dernière modification par Delprog (05-12-2008 15:28:09)
Hors ligne
Maintenant, arrêtons de polluer le sujet de nORKy.
C'est déjà fait non?
Moi je trouve quand même que nORKy a raison :p
Sinon pour l'histoire du redirect, c'est vrai que c'est pas génant, moi j'ai un historique de navigation avec espace de nom, ça me permet de faire des redirect dès que besoin (comme ca tu peux faire des retour spécifique dans des parties du site)
Hors ligne
Mr.MoOx a écrit:
Maintenant, arrêtons de polluer le sujet de nORKy.
C'est déjà fait non?
Moi je trouve quand même que nORKy a raison :p
Sinon pour l'histoire du redirect, c'est vrai que c'est pas génant, moi j'ai un historique de navigation avec espace de nom, ça me permet de faire des redirect dès que besoin (comme ca tu peux faire des retour spécifique dans des parties du site)
Pas bête ca.
Hors ligne
bonjour,
moi j'ai un historique de navigation avec espace de nom
j'ai pas compris. C'est quoi un historique de navigation avec espace de nom ?
Hors ligne
Salut,
Je suppose que Mr.MoOx voulait dire qu'il a un session name space qui regroupe des uri comme points de navigations au fur et à mesure de la visite de l'utilisateur. Comme une série de checkpoint j'imagine, qu'il peut rappeler quand il veut dans la navigation.
C'est comme ça que je l'ai compris, maintenant je me trompe peut-être
A+ benjamin.
Hors ligne