|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 15 ![]() |
Bonjour,
J'ai une classe Etape qui me génère le div qui affiche l'étape. Ensuite je veux dans un fichier html ajouter un lien qui active une fonction javascript ajouter étape qui rajoute dans le code html un div avec une nouvelle étape. Je dois donc passer en paramètre le string $div_etape récupéré de ma fonction getCode(). Code :
<a href = "javascript:ajouterEtape('etapes', '<?php echo $div_etape ?>');" > Ajouter une étape </a> Code :
missing ) after argument list ajouterEtape('etapes', '<div class="su...e la saisie </a> </div></div></div>'); J'ai testé le addslashes et le htmlentities sans succès. J'aimerai donc savoir si il y a un moyen de résoudre ce problème. Sinon, est-ce qu'il y a une façon plus judicieuse d'afficher dynamiquement le code html des étapes ? merci d'avance |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 807 ![]() |
Citation:
![]() Citation:
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
||
|
00
|
|
|
#3 | ||
|
Membre éclairé
![]() F5(){F5} Inscription : avril 2008 Messages : 256 ![]() |
salut,
oui ya plus judicieux. tu output ton div genre Code :
<div id="etapeDuCol" class="hidden">blabla</div> Et dans ton lien, tu fais pointer le href vers ton div caché : Code :
<a href = "#etapeDuCol" onclick="ajouterEtape(this.href);" > Ajouter une étape </a> Code :
|
||
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Eric GaridacciInscription : septembre 2005 Messages : 1 057 ![]() |
Salut,
Pour ne pas obtenir d'erreurs lors de l'interpretation du code JS à cause de données placées dynamiquement, il est bon d'encoder ces dernières avec la fonction PHP rawurlencode()... Code php :
$div_etape=rawurlencode($div_etape); Code js :
ajouterEtape('etapes', unescape('<?php echo $div_etape ?>')); Sinon, la technique de galerien69 est très propre en effet.
__________________
N'oubliez pas le vote des messages utiles ainsi que le Tag [Résolu].Mon Site Web : Corse - Actualité, Météo, Vidéos, Logiciels, ... |
|
|
00
|
|
|
#5 | ||||
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 15 ![]() |
Voila le code Bovino je m'excuse.
donc le div dois être ajouté à un div d'id 'div_etapes' Code :
Code :
|
||||
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 15 ![]() |
J'aurai aussi tendance à faire comme tu dis galerien69 mais le problème c'est que avec mon code d'avant la page prenait trop de temps pour ce charger c'est pour cela que j'ai pensé à les créer dynamiquement. Sinon le fait de passer du html comme ça dans une fonction javascript: est-ce que c'est souvent fait ou il vaudrait mieux faire autrement?
|
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 15 ![]() |
Eric2a Je vais tester ton astuce et voir ce que ça donne.
|
|
|
00
|
|
|
#8 |
|
Membre éclairé
![]() F5(){F5} Inscription : avril 2008 Messages : 256 ![]() |
ben c'est normalement méga crado de faire comme tu fais...
Normalement, tu fais du js non intrusif, cad tu es pas censé avoir de onclick="machin" dans tes balises. Le js est dans un fichier à part. Si tu veux afficher un truc, soit tu le planques dans le dom et tu l'affiches, ce qui peut effectivement prendre du temps si ya plein de html. Soit tu fais une requête ajax pour récupérer le contenu que si c'est nécessaire. Cela dit, ici, que tu output ton html dans tes balises ou ailleurs, ca prendra le même temps |
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 15 ![]() |
unterminated string literal ajouterEtape('etapes', unescape('
Voila l'erreur que me renvoie firebug |
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 15 ![]() |
Sinon avec AJAX comment pourrai-je faire ? Et surtout est-ce que ce sera plus rapide que de tout mettre dans le html et de les cacher. J'en ai jamais fait. Je vous remercie d'avance.
|
|
|
00
|
|
|
#11 | |
|
Membre Expert
![]() Eric GaridacciInscription : septembre 2005 Messages : 1 057 ![]() |
Citation:
Code php :
$div_etape=str_replace(array("\r","\n","\t"),'',$div_etape); Ceci dit, je reste convaincu que la technique de galerien69 est de loin la meilleure.
__________________
N'oubliez pas le vote des messages utiles ainsi que le Tag [Résolu].Mon Site Web : Corse - Actualité, Météo, Vidéos, Logiciels, ... |
|
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 15 ![]() |
En enlevant \n et \r ça marche. Après je n'arrive pas à récupérer le lastchild de div_etape avec la fonction spécifiée précédemment :s
|
|
|
00
|
|
|
#13 | ||||||||
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 15 ![]() |
voila pour passer le code html il faut faire ça:
Code :
voila le code du menu: Code :
Code :
Code :
(je vais quand même rester sur de l'affichage dynamique parce que en affichant tous les div en caché, la page devient trop lourde et lente au chargement) |
||||||||
|
|
00
|
|
|
#14 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 15 ![]() |
en fait, à partir du deuxième ul du menu, tout est grisé sur fire bug :s quelqu'un a déjà eu un problème pareil ?
|
|
|
00
|
|
|
#15 | ||
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 15 ![]() |
J'ai trouvé la solution. Une fois le code html inséré dynamiquement. Il faut forcer le déclenchement des fonctions javascripts voici le code :
Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com