Je sais, mon titre n'est pas super explicite, mais je savais pas trop expliquer mon problème en fait !
Ca doit être la première fois que je poste un problème sur ce site ! Oh mon dieu !
Bon, alors, en fait, je veux créer des div à la volée, mais les créer avec un contenu généré par une fonction PHP. Le problème, c'est que le résultat m'affiche du code html...
Petites explications avec un exemple :
Code :
function test() {
var e = document.createElement("div" );
var f = document.createTextNode(<?php mafonctionPHP(); ?> );
Donc ce code me créé bien une div dans ma div "sidecontent", mais le texte résultant de ma fonction PHP est écrit en clair en HTML...
J'ai comme résultat "<table><tr><td>..."
Est-ce que quelqu'un connaît une méthode pour que je puisse "exécuter" ce code ? j'ai testé avec html_entity_decode, ça a pas marché.
Et si tu fais simplement: sidecontent.style.visibility="visible".
Pit-et qui c'est bon.
Bah le problème, c'est que j'ai 6 liens, et que au survol de chacun d'eux, je veux que dans une div à coté ça affiche quelque chose de différent, en fonction du survol.
Au début, je voulais faire avec les styles et "display = 'block'" ou "display = none", mais il faudrait que je cache tous les autres éléments... ce qui est un peu la merde à faire ! Afficher un élément puis cacher les 5 autres, bordel quoi ! :-P
Citation :
Je ne sais même pas si on peut exécuter des commandes PHP en javascript.
Bah normalement si.
Mais j'ai avancé un peu, si je rajoute des simples quotes autour de <? ?>, comme ceci :
Code :
var f = document.createTextNode('<?php maFonction(); ?>');
ça m'affiche bien mon code HTML dans ma source, le seul problème, c'est que ça saute des lignes, et que donc, l'exécution ne marche pas, vu que le JS n'aime pas les sauts de ligne.
Mon str_replace("\n", "", maFonction()); n'a rien donné, donc je vais essayer de voir ça...
Tu numérote les types de DIV en question.
Puis tu crée une petite routine qui n'a comme fonction que de faire un display='none'.
Tu appel cette routine en passant comme paramètre, le type (donc le numéro) de la DIV que tu veux afficher.
Si, en exécutant la routine que tu viens d'écrire, le numéro de la DIV correspond au numéro de la DIV que tu viens de faire, tu fait un display='block' else display='none'
Oui en effet: javascript est du côté client et PHP est du côté du serveur mais parfois il est intéressant d'avoir un résultat côté client, sans devoir faire appel au serveur. Ce qui réduit le temps d'affichage.
Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois. Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.