Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 23-04-2009 10:09:23

kindy
Membre
Date d'inscription: 17-04-2009
Messages: 32

[Resolu] tableau dynamique en javascript ne fonctionne pas

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

 

#2 23-04-2009 11:12:22

ledahu
Membre
Date d'inscription: 13-03-2008
Messages: 69

Re: [Resolu] tableau dynamique en javascript ne fonctionne pas

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 smile

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

 

#3 23-04-2009 11:37:26

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Resolu] tableau dynamique en javascript ne fonctionne pas

dans tous mes contrôleurs je donne à la vue le baseUrl

Code:

$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

Code:

<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

Code:

        <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

Code:

        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

Code:

public/user.gif

lorsque tu l'appelle sans paramètre tu fais

Code:

http://mon.server/mon/base/url/client/show

le navigateur vas donc aller chercher l'image

Code:

http://mon.server/mon/base/url/client/show/public/user.gif

et lorsque tu l'appelle avec un id tu fais

Code:

http://mon.server/mon/base/url/client/show/id/45

il ira donc chercher

Code:

http://mon.server/mon/base/url/client/show/id/45/public/user.gif

si dans ta vue tu mets

Code:

/public/user.gif

et que dans ta plateforme de dev ton applie est à la racine
tu vas faire par exemple

Code:

http://mon.server/client/show

ou

Code:

http://mon.server/client/show/id/45

et le navigateur ira chercher

Code:

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

Code:

http://mon.server/baseUrl/client/show

ou

Code:

http://mon.server/baseUrl/client/show/id/45

il continua à aller chercher l'image dans

Code:

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

 

#4 23-04-2009 11:46:53

kindy
Membre
Date d'inscription: 17-04-2009
Messages: 32

Re: [Resolu] tableau dynamique en javascript ne fonctionne pas

merci beaucoup pour vos reponses.
J'ai retenue celle de sekaijin et ça fonctionne smile
Merci encore

Hors ligne

 

#5 23-04-2009 12:00:19

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [Resolu] tableau dynamique en javascript ne fonctionne pas

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+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages