PHP/Javascript :affichage d'une variable dans une DIV via JS

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : PHP/Javascript :affichage d'une variable dans une DIV via JS

Re: PHP/Javascript :affichage d'une variable dans une DIV via JS

par FuZZyLine » 06 sept. 2009, 12:11

@ FuZZyLine : euh... je vois pas bien l'intérêt de mettre tout ton code HTML dans une variable php pour l'afficher ?
C'est plus lourd à lire, à maintenir et à traiter par le serveur, surtout qu'il n'y a rien de dynamique dedans...
[Mode HS=On]
Parqu'un exemple vaut ce qu'il vaut... ;)
La, ca reste basique je te l'accorde mais lors de l'écriture d'un site complêt c'est beaucoup plus pratique.
Je recois mes datas dans des variables différentes puis je cat -> $cde pour afficher. Pas de tableaux
qui s'éparpillent ou autres bouts placés à gauche ou à droite. Pas mélange html/php...
Je te promets c'est bien moins lourd que ce que tu peux imaginer ;)
[Mode HS=Off]

Sinon pour revenir au sujet: Javascript aime pas les espaces [*]item1, item2, ... entre les éléments
tableaux et argument envoyes. J'ai pas vérifié si ton code en avait... Erreur de ce type constaté sur FF & IE et
je dois avouer, avec honte, que j'ai passé 5 minutes à me rappeler de ce problème.
Bref on sait jamais, essaye de voir si y en a dans ton code.

[*] Désolé de n'être plus clair

@+ ;)

Re: PHP/Javascript :affichage d'une variable dans une DIV via JS

par Ryle » 06 sept. 2009, 11:44

@Miczka : et que contient ta variable $tab[cpt][3] ? Est-ce qu'il contient des apostrophes ?
En effet, le htmlentities() ici ne protège que les guillemets qui peuvent se trouver dans ta chaine, mais les apostrophes ne sont pas protégées par défaut (et du coup, risque de tronquer ta chaine une fois en javascript). Tu peux le voir aisément en regardant le code source généré par ta page :)

Pour éviter cela, il te faut soit protéger les apostrophes avec un addslashes() ou autre (pour transformer tes ' en \' ) ou spécifier la valeur ENT_QUOTES comme second paramètre de la fonction htmlentities() :)

@ FuZZyLine : euh... je vois pas bien l'intérêt de mettre tout ton code HTML dans une variable php pour l'afficher ? C'est plus lourd à lire, à maintenir et à traiter par le serveur, surtout qu'il n'y a rien de dynamique dedans...

Re: PHP/Javascript :affichage d'une variable dans une DIV via JS

par FuZZyLine » 06 sept. 2009, 10:43

Bonjour, je suis nouveau sur ce forum !
J'essaye d'intégrer du texte dans un bloc div, à partir de l'événement JS onclick, le tout dans du php.
Voici mon code:
[...]
$tab est récupéré d'une base de donnée : $tab[cpt][3] représente du texte déjà formaté en html.
Quand je teste en passant une bête string ("hello world"), ça marche.
Mais quand je passe mon $tab[cpt][3], on n'entre même pas dans la fonction javascript.
Un grand merci d'avance pour toute aide :)
Salut,

C'est full Javascript, non php. En gros, assembler les deux veut juste dire échapper les guillements:
Ceci étant voici ce que tu veux (si je ne suis pas à côté de la plaque)
<?php
 $cde  = "<html>\n";
 $cde .= "   <head>\n";
 $cde .= "      <title>\n";
 $cde .= "         Combinaison Javascript / php - FuzzyLine \n";
 $cde .= "      </title>\n";
 $cde .= "      <style type=\"text/css\">\n";
 $cde .= "         body            { margin:0px 0px  0px 0px;  padding:0px 0px 0px 0px; text-align:center; }\n";
 $cde .= "         h2              { margin:0px 0px  0px 0px;  padding:0px 0px 0px 0px; }\n";
 $cde .= "         #mainContainer  { width:800px; margin:0px auto 0px auto; padding:0px 0px 0px 0px; }\n";
 $cde .= "         #leftContainer  { float:left; width:400px; text-align:left; }\n";
 $cde .= "         #rightContainer { float:left;  width:400px; text-align:left; }\n";
 $cde .= "         .cleared        { visibility:hidden; clear:both; }\n";
 $cde .= "      </style>\n";
 $cde .= "      <script langage=\"Javascript\">\n";
 $cde .= "      <!--\n";
 $cde .= "         function hasLoad(idName, arrayList)\n";
 $cde .= "         {\n";
 $cde .= "            iCount = arrayList.length;\n";
 $cde .= "            for(var i=0; i<iCount; i++)\n";
 $cde .= "            {\n";
 $cde .= "               document.getElementById(arrayList[i]).onmouseover = function()\n";
 $cde .= "               {\n";
 $cde .= "                  overEffect(idName,this);\n";
 $cde .= "               }\n";
 $cde .= "               document.getElementById(arrayList[i]).onmouseout = function() { document.getElementById(idName).innerHTML = \"\"; }\n";
 $cde .= "            }\n";
 $cde .= "         }\n";
 $cde .= "         function overEffect(idName,object)\n";
 $cde .= "         {\n";
 $cde .= "            document.getElementById(idName).innerHTML = \"Coucou de la part de:\"+object.id;\n";
 $cde .= "            document.getElementById(idName).innerHTML = \"Coucou de la part de:\"+object.id;\n";
 $cde .= "         }\n";
 $cde .= "         \n";
 $cde .= "      -->\n";
 $cde .= "      </script>\n";
 $cde .= "   </head>\n";
 $cde .= "   <body onload=hasLoad(\"resume\",Array(\"link_1\",\"link_2\",\"link_3\"));>\n";
 $cde .= "      <div id=\"mainContainer\">\n";
 $cde .= "         <div id=\"leftContainer\">\n";
 $cde .= "            <h2>Partie gauche</h1>\n";
 $cde .= "            <p id=\"bloc_01\">\n";
 $cde .= "               Action :\n";
 $cde .= "               <a href=\"\" id=\"link_1\">that's rock</a>\n";
 $cde .= "            </p>\n";
 $cde .= "            <p id=\"bloc_02\">\n";
 $cde .= "               Action :\n";
 $cde .= "               <a href=\"\" id=\"link_2\">that's funk</a>\n";
 $cde .= "            </p>\n";
 $cde .= "            <p id=\"bloc_03\">\n";
 $cde .= "               Action :\n";
 $cde .= "               <a href=\"\" id=\"link_3\">that's fun...</a>\n";
 $cde .= "            </p>\n";
 $cde .= "         </div>\n";
 $cde .= "         <div id=\"rightContainer\">\n";
 $cde .= "            <h2>Partie droite</h1>\n";
 $cde .= "            <p id=\"resume\">\n";
 $cde .= "            </p>\n";
 $cde .= "         </div>\n";
 $cde .= "      </div>\n";
 $cde .= "      <hr class=\"cleared\"/>\n";
 $cde .= "      -+- ThAt'S AlL -+-\n";
 $cde .= "   </body>\n";
 $cde .= "</html>\n";

 echo $cde;
?>
Inutile de dire que le script html n'est pas compatible w3 mais pas très dur de l'y mettre.
Le js, lui, passe sur IE/FF, ...tel quel, il sert juste de démo, à toi de l'adapter et à mort le cop/col ;)

@+ bon code ;)

EDIT: un petit lien: http://javascript.developpez.com/faq/?page=DOM au cas ou ;)

PHP/Javascript :affichage d'une variable dans une DIV via JS

par Miczka » 06 sept. 2009, 01:55

Bonjour, je suis nouveau sur ce forum !

J'essaye d'intégrer du texte dans un bloc div, à partir de l'événement JS onclick, le tout dans du php.
Voici mon code:

Code : Tout sélectionner

<script> function showText(name) { alert("ok"); document.getElementById("droite").innerHTML = name; } </script> <?php $cpt=0; $countrow=count($tab[1]); for($cpt=0;$cpt<$countrow;$cpt++) { $stringy = htmlentities($tabbrev[$cpt][3]); echo " <a href='#' onclick=javascript:showText('".$stringy."'); > LE TEXTE DE MON LIEN </a><br/>"; } ?>

$tab est récupéré d'une base de donnée : $tab[cpt][3] représente du texte déjà formaté en html.

Quand je teste en passant une bête string ("hello world"), ça marche.
Mais quand je passe mon $tab[cpt][3], on n'entre même pas dans la fonction javascript.

Un grand merci d'avance pour toute aide :)