Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 04-01-2009 00:10:53

tonton flubb
Membre
Date d'inscription: 11-10-2008
Messages: 48
Site web

[Résolu] URL de base avec jQuery / JavaScript

Bonsoir à tous,

Tout d'abord je vous présente mes meilleurs vœux pour cette nouvelle année qui commence ! Qu'elle soit bonne et pleine de bonheur !

Voici mon problème : Je bloque sur un petit point dans mon application avec l'intégration de jQuery. Afin de respecter les grandes règles du développement Web, mon code JS est complètement externalisé et placé dans le dossier /public/js/

Ainsi, dans ce dossier je retrouve le Framework jQuery ainsi que plusieurs fichiers de scripts JS correspondants à différentes sections de mon application.
J'ai donc par exemple le code suivant qui affiche une petite lightbox avec une image placée dans /public/images/ lorsque je coche une case :

Code:

$(document).ready(function() {
    $("#gauche_autologin").click(function() {
        if ($("#gauche_autologin").is(':checked')) {
            Shadowbox.open({
                player:     'iframe',
                title:      'Information importante',
                content:    'public/images/popup-fond.gif',
                height:     250,
                width:      500
            });
        }
    });
});

Ceci fonctionne sans problème lorsque je suis à la racine de l'application. Mais lorsque je suis à l'URL /account/login par exemple, et que j'affiche à nouveau ma lightbox, l'image est introuvable, ce qui est logique, car elle est recherchée dans le dossier /account/public/images/

Je voudrais alors savoir quelles méthodes utilisés-vous pour travailler avec JavaScript et / ou jQuery afin de n'avoir aucun problème avec l'URL de base ?

D'avance je vous remercie beaucoup !

Florent.

Dernière modification par tonton flubb (04-01-2009 23:42:45)


Florent - Développeur Web

Hors ligne

 

#2 04-01-2009 00:19:25

neojick
Membre
Date d'inscription: 13-04-2008
Messages: 223
Site web

Re: [Résolu] URL de base avec jQuery / JavaScript

L'index.php est placé dans /public j'imagine ? Donc ton image est accessible depuis /images/popup-fond.gif, et ceci de partout logiquement.

Mais j'ai peut-être mal compris ton explication.

Dernière modification par neojick (04-01-2009 00:19:53)


Chan IRC de ZF en français : zftalk-fr

Hors ligne

 

#3 04-01-2009 13:54:06

Julien
Membre
Date d'inscription: 16-03-2007
Messages: 501

Re: [Résolu] URL de base avec jQuery / JavaScript

et un <base href="url-de-base"> pour changer l'url de base des liens relatifs ?

Hors ligne

 

#4 04-01-2009 14:29:10

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

Re: [Résolu] URL de base avec jQuery / JavaScript

pour ma part je place toujours dans les header quelques ligne de javascript comme ceci

Code:

<script>
MyApp.baseUrl = <?php echo $this->baseUrl ?>;
</script>

j'y place toutes les variables que je veux passer de php à javascript lorsque je veux passer des structure complexe j'utilise JSON

Code:

$this->view->user = ZendJson::encode($uer);

Code:

<script>
MyApp.baseUrl = <?php echo $this->baseUrl ?>;
MyApp.user = <?php echo $this->user ?>;
</script>

je peux ainsi dans tous mes js utiliser ses variables

Code:

$(document).ready(function() {
    $("#gauche_autologin").click(function() {
        if ($("#gauche_autologin").is(':checked')) {
            Shadowbox.open({
                player:     'iframe',
                title:      'Information importante',
                content:    MyApp.baseUrl + 'public/images/popup-fond.gif',
                height:     250,
                width:      500
            });
        }
    });
});

de la même façon je peux utiliser le prénom de mon utilisateur

Code:

MyApp.user.firstname

A+JYT

Hors ligne

 

#5 04-01-2009 23:42:14

tonton flubb
Membre
Date d'inscription: 11-10-2008
Messages: 48
Site web

Re: [Résolu] URL de base avec jQuery / JavaScript

Bonsoir à tous,

Tout d'abord, un très grand merci à tous pour vos réponses qui m'ont retirées l'épine du pied !
Je vais répondre à chacun en fonction de mon avis :

neojick a écrit:

L'index.php est placé dans /public j'imagine ? Donc ton image est accessible depuis /images/popup-fond.gif, et ceci de partout logiquement.

Mais j'ai peut-être mal compris ton explication.

Mon fichier index.php se trouve à la racine de mon application, au même niveau que les dossiers library, application et public.

Julien a écrit:

et un <base href="url-de-base"> pour changer l'url de base des liens relatifs ?

J'ai testé cette solution, et c'est même celle-ci que j'aurais voulu utiliser, car elle remplace les liens absolus pour tous les éléments, scripts et images, ce qui m'intéresse vraiment.
Mais pour fonctionner correctement, il faut placer l'adresse complète pour accéder à l'application (http://...), et donc définir quelque part cette adresse complète.
Hors, me connaissant, je vais un jour mettre un fichier à jour sur le serveur sans modifier le paramètre et je ne vais plus y penser !

sekaijin a écrit:

pour ma part je place toujours dans les header quelques ligne de javascript comme ceci...

C'est la solution que j'ai utilisé, car j'ai juste besoin de placer la ligne de code dans mon layout et de récupérer l'URL de base depuis le frontController.
Ainsi, je ne dois pas penser à changer un paramètre le jour ou je change l'adresse par exemple...

Par contre, le jour ou j'ai besoins de l'URL de base pour des images, j'utiliserai la balise <base> qui est faite pour ce genre de choses, et à laquelle je n'ai plus du tout pensé !

Encore merci à tous pour vos remarques et précieux conseils !

Florent


Florent - Développeur Web

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