Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
bonjour,
Dans ma vue, j'ai un tableau et j'aimerai qu'en fonction de la colonne sur laquelle on clique, que cette colonne soit trié. J'ai trouvé une librairie en javascript qui me permet ce trie.
Je l'ai testé sans passer par zend pour vérifier son fonctionnement et ça marche très bien.
Par contre dés que je j'essaie de le mettre dans mon appli ça ne fonctionne pas et je n'ai aucune erreur à l'affichage.
dans ma vue :
<script src="sorttable.js"> </script>
et ensuite j'ai mon tableau
et mon fichier sorttable.js est dans le même répertoire que le fichier de ma vue.
Que dois-je faire pour que ça marche ? ou avez-vous une autre solution pour mon trie dynamique ?
Merci
Dernière modification par kindy (23-04-2009 12:17:51)
Hors ligne
Je ne sais pas comment tu peux faire en mettant le javascript dans le même dossier que ta vue.
Chez moi, les javascripts sont des fichiers publics et donc sont dans le dossier public/js.
Je pense que chez toi aussi et que par conséquent si tu l'as mis ailleurs tu ne peux pas l'appeler
Essaye de le mettre dans public/js et de modifier l'appel de ton fichier en src="/js/sorttable.js" et ca devrait beaucoup mieux fonctionner.
Hors ligne
dans tous mes contrôleurs je donne à la vue le baseUrl
$this->view->baseUrl = $this->_request->getBaseUrl();
le base url est le chemin relatif à la racine du serveur ver le dossier contenant ton application.
dans mes vue que ce soit pour les images les script ou tout autre référence j'en passe toujours par le baseUrl
<script type="text/javascript" src="<?php echo $this->baseUrl; ?>/public/scripts/core/core.js"></script> <img src="<?php echo $this->baseUrl; ?>/public/scripts/ext/resources/images/default/shared/large-loading.gif" width="32" height="32" align="bottom"/>
de cette façon je suis sur que quelque soit le niveau hiérarchique ou sera installé mon application toutes les vue trouveront leur éléments.
si un script javascript soit contenir une url référençant quoi que ce soit dans l'application j'en passe aussi par le baseUrl
pour cela je mets dans ma page un objet js qui contiendra cette information
<script type="text/javascript"> App.baseUrl = '<?php echo $this->baseUrl; ?>/'; </script>
dans tous script je peux faire référence à un élément sur le serveur en utilisant cette donne
Ext.BLANK_IMAGE_URL = App.baseUrl + 'public/scripts/ext/resources/images/default/s.gif'; Ajax.request({ scope: this, disableCaching: true, url: App.baseUrl + 'contact/remove/id/' + id, success:this.removeSuccess, failure:this.removeFailure });
si tu mets les chemins en relatif dans ta vue ce sera relatif à ton url
par exemple l'action show du contrôleur client
si tu n'a pas de paramètre affiche un message sélectionnez un client et lorsque tu as un id t'affiche le client.
si dans ta vue tu mets
public/user.gif
lorsque tu l'appelle sans paramètre tu fais
http://mon.server/mon/base/url/client/show
le navigateur vas donc aller chercher l'image
http://mon.server/mon/base/url/client/show/public/user.gif
et lorsque tu l'appelle avec un id tu fais
http://mon.server/mon/base/url/client/show/id/45
il ira donc chercher
http://mon.server/mon/base/url/client/show/id/45/public/user.gif
si dans ta vue tu mets
/public/user.gif
et que dans ta plateforme de dev ton applie est à la racine
tu vas faire par exemple
http://mon.server/client/show
ou
http://mon.server/client/show/id/45
et le navigateur ira chercher
http://mon.server/public/user.gif
ça résout donc le pb.
mais si par la suite tu installe ton appli dans un sous dossier
http://mon.server/baseUrl/client/show
ou
http://mon.server/baseUrl/client/show/id/45
il continua à aller chercher l'image dans
http://mon.server/public/user.gif
tu seras alors obligé soit de modifier la structure des dossiers soit de refaire tes vues.
si tu utilise baseUrl il se référencera toujours par rapport à la racine de l'application où quelle soit.
A+JYT
PS: on peut passer baseUrl à la vue dans le ini des contrôleurs
Dernière modification par sekaijin (23-04-2009 11:41:20)
Hors ligne
merci beaucoup pour vos reponses.
J'ai retenue celle de sekaijin et ça fonctionne
Merci encore
Hors ligne
Hello,
L'aide de vue BaseUrl est actuellement dans l'incubator (http://framework.zend.com/code/browse/Z … iew/Helper), normalement prévu pour la 1.8 mais malheureusement pas dans la Beta, espérons dans la RC.
A+
Hors ligne
Pages: 1