|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Julie V.Développeur Web Inscription : avril 2009 Messages : 36 ![]() |
Bonjour,
Je voulais afficher une carte google map dans une page générée grâce à ajax. Je m'explique: j'ai une carte qui s'affiche correctement lorsqu'on appel directement la page. Ensuite, lorsque je clique sur un bouton, une partie de ma page est généré grâce à ajax et le contenu désiré s'affiche correctement... cependant, lorsque je mets le code nécessaire à l'affichage d'une google map dans cette page générée, la carte ne s'affiche plus... Je ne sais plus vers quoi m'orienter pour afficher ma carte correctement... Est ce que quelqu'un aurait une idée ? Merci d'avance pour vos réponses... |
|
|
00
|
|
|
#2 | ||||
|
Membre éclairé
![]() Jérôme PillietÉtudiant Inscription : mai 2011 Messages : 190 ![]() |
Je sais pas si ça peut venir de là,
Mais Google utilise des IFrame (oh le pas beau ^^) Je sais pas si il peut y avoir des conflit ( si par exemple une iframe est chargé au démarrage et qu'avec AJAX ça plaise pas ) Essaye de passer le code de Google en W3C pour voir Oo C'est pas bien compliqué ^^ Le code Google de base : Code :
Code :
|
||||
|
|
00
|
|
|
#3 | ||
![]() ![]() Inscription : janvier 2011 Messages : 2 944 ![]() |
Citation:
- comment sont générées tes cartes ? - si la copie du code ne te donnes pas le même rendu, c'est qu'il manque quelque chose => des erreurs dans les scripts... Citation:
|
||
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() Mathieu ROBINDéveloppeur Web Inscription : mai 2006 Messages : 1 116 ![]() |
ça en est où?
Si tu bosses avec jQuery, tu peux te servir de ce plugin pour te simplifier la vie : http://gmap.nurtext.de/
__________________
Mon blog techno et son billet hebdomadaire sur l'actualité jQuery. Et mon blog cuisine pour une personne. Le bouton ne masse pas les pieds, mais ça aide la communauté.
|
|
00
|
|
|
#5 | ||||
|
Candidat au titre de Membre du Club
![]() Julie V.Développeur Web Inscription : avril 2009 Messages : 36 ![]() |
Je n'ai pas utilisé le plugin de jQuery mais l'intégration de base :
Code :
Code :
J'ai essayé d'utiliser la fonction eval() également mais je n'ai eu aucun résultat. Je n'ai aucune erreur sur les différents débuggers. |
||||
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() ![]() Mathieu ROBINDéveloppeur Web Inscription : mai 2006 Messages : 1 116 ![]() |
Tu fais ce qui est communément appelé DSL => Dynamic Script Loading.
Pour trouver l'origine de la panne, pose toi toutes ces questions : - Est-ce que la requête Ajax est correctement envoyée au serveur ? - Est-ce qu'elle reçoit bien la bonne réponse, c'est à dire ton fichier ? - Est-ce que tu l'exécutes avec jQuery, si oui, as tu préciser que le dataType est du texte plus évaluation du résultat lors de l'évènement success de la requête. Idem sur les autres frameworks que tu aurais pu utiliser. - Si tu n'as pas utilisé de frameworks regarde du côté des frameworks (donc question précédente). - le code JS que tu donnes en dessous (celui entre balises script) est-il tel quel dans le fichier JS importé? Si oui, alors vire les balises HTML. - si ce n'est pas le cas, surveille la console firebug ou le webkit inspector pour voir si une erreur ne s'est pas produite dans ta page concernant ce fichier ou son appel. Si c'est le cas, la très grande majorité des navigateurs (si ce n'est tous) vont considérer que c'est une fatal error. Et une erreur fatale implique logiquement qu'il arrête tout côté JS. Si ça correspond à rien de toutes ces pistes, faudra que tu m'envoies tes fichiers ou que tu donnes plus d'éléments.
__________________
Mon blog techno et son billet hebdomadaire sur l'actualité jQuery. Et mon blog cuisine pour une personne. Le bouton ne masse pas les pieds, mais ça aide la communauté.
|
|
00
|
|
|
#7 |
![]() ![]() Inscription : janvier 2011 Messages : 2 944 ![]() |
|
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() ![]() Mathieu ROBINDéveloppeur Web Inscription : mai 2006 Messages : 1 116 ![]() |
Si, sur le principe même DSL.
NoSmoking, essaie avec ça : Un fichier html tout bête qui va "écrire" (fonction write) une balise script dans le head et c'est tout. Plus un fichier JS tout bête qui fait une alert tout ce qu'il y a de plus banal. Bien entendu la balise ajoutée doit concerner le fichier js. Et là "plop", tu as ton alert. C'est le Dynamic Script Loading.
__________________
Mon blog techno et son billet hebdomadaire sur l'actualité jQuery. Et mon blog cuisine pour une personne. Le bouton ne masse pas les pieds, mais ça aide la communauté.
|
|
00
|
|
|
#9 | |||||||||||
|
Candidat au titre de Membre du Club
![]() Julie V.Développeur Web Inscription : avril 2009 Messages : 36 ![]() |
Bon alors, j'ai regardé ce qu'était le DSL. J'ai fait quelques essais. C'est vrai que c'est très pratique. En prenant un exemple simple du genre :
Code :
Par contre, si j'utilise la fonction ajax suivante, je me retrouve avec une page blanche (pas d'erreur sous FF/Chrome) : Code :
Pour répondre aux questions : Citation:
Citation:
Code :
Citation:
Le fichier que j'appel ( url: "fm_descript.php") est donc sous cette forme là : Code :
|
|||||||||||
|
|
00
|
|
|
#10 | |||
|
Membre Expert
![]() ![]() Mathieu ROBINDéveloppeur Web Inscription : mai 2006 Messages : 1 116 ![]() |
Je crois que j'ai trouvé. Je peux pas tester là mais le truc bête :
Ici : Citation:
Alors que dans ton test, tu utilises .write(value). Ce qui est sensiblement différent. D'un côté tu changes une valeur et c'est tout. De l'autre, tu changes ton DOM. D'où le fait qu'il y en a un qui marche et l'autre non. Remplace ta ligne avec .html(value) par une ligne équivalente utilisant .write() et tu devrais voir une différence. Pour rappel, changer une propriété d'une balise du DOM (comme innerHTML) peut changer son apparence mais ne provoque pas d'évaluation. Contrairement à l'utilisation de .write() qui elle provoque aussi son évaluation puisqu'on modifie le DOM.
__________________
Mon blog techno et son billet hebdomadaire sur l'actualité jQuery. Et mon blog cuisine pour une personne. Le bouton ne masse pas les pieds, mais ça aide la communauté.
|
|||
|
00
|
|
|
#11 | ||
|
Membre Expert
![]() ![]() Mathieu ROBINDéveloppeur Web Inscription : mai 2006 Messages : 1 116 ![]() |
Il y a un problème à ça, c'est que tu voudras alors effectuer un .write() sur un élément sélectionné avec jQuery. Ce qui n'est pas directement possible.
L'astuce devient alors de faire ça : Code :
__________________
Mon blog techno et son billet hebdomadaire sur l'actualité jQuery. Et mon blog cuisine pour une personne. Le bouton ne masse pas les pieds, mais ça aide la communauté.
|
||
|
00
|
|
|
#12 | ||
|
Candidat au titre de Membre du Club
![]() Julie V.Développeur Web Inscription : avril 2009 Messages : 36 ![]() |
Ce n'est pas toi qui, récemment, a écrit un article sur ton blog disant que eval() était une méthode barbare ?
Avant ta réponse, j'avais déjà testé de faire un eval() mais sans succès. J'ai le message d'erreur suivant : Code :
|
||
|
|
00
|
|
|
#13 |
|
Membre Expert
![]() ![]() Mathieu ROBINDéveloppeur Web Inscription : mai 2006 Messages : 1 116 ![]() |
Si mais vu que tu y vas comme une barbare, je te sors une solution barbare.
Plus sérieusement, je te suggère de ne pas faire ça comme ça mais plutôt d'utiliser le plugin gmap3 et si t'as besoin que les données affichées sur ta map soit dynamique, de réserver leur affichage/raffraichissement avec ajax. La map reste ainsi gérée par le plugin et ainsi, pas de prise de tête
__________________
Mon blog techno et son billet hebdomadaire sur l'actualité jQuery. Et mon blog cuisine pour une personne. Le bouton ne masse pas les pieds, mais ça aide la communauté.
|
|
00
|
Copyright © 2000-2012 - www.developpez.com