![Citation](https://forum.developpez.be/images/misc/quote_icon.png)
Envoyé par
walking
après avoir affecté le contenu de la div 'contenu' à $html ( voir dans mon code ).
[...]
mais $html ne varie pas avec eux, après la 1ère affectation.
C'est toi qui comprends mal : tu ne peux pas faire ça en javascript ! (car le PHP est coté serveur et le javascript coté client !)
DONC :
1/ la div "#contenu" :
1 2 3 4 5 6 7 8
| <div id="contenu">
<h2>I) Titre1 : </h2>
<div id="partie1">C'est la 1ère partie.</div>
<h2>II) Titre2 : </h2>
<div id="partie2">C'est la 2ème partie.</div>
<h2>III) Titre3 : </h2>
<div id="partie3">C'est la 3ème partie.</div>
</div> |
2/ la 1ère affectation :
- SOIT OPTION 1 : (comme tu fais déjà) tu mets le contenu de "#contenu" dans une variable $html,
Et (avec l'OPTION 1) :
<input type="hidden" id="idcode" name="code" value="<?php echo htmlspecialchars($html); ?>" />
- SOIT OPTION 2 : directement en javascript avec :
1 2 3
| window.onload=function {
document.getElementById("idcode").value = document.getElementById("contenu").innerHTML;
} |
et (avec l'OPTION 2) :
<input type="hidden" id="idcode" name="code" value="" />
3/ Traitement javascript/ajax pour modifier dynamiquement les contenus de "#partie1", "#partie2", "#partie3"
[... ton code de traitement javascript/ajax ...]
4/Il faut alors affecter la valeur de l'input directement en javascript :
document.getElementById("idcode").value = document.getElementById("contenu").innerHTML;
Par contre, htmlspecialchars() n'existe pas en javascript.
Il faut éventuellemnt créer une fonction javascript (trouvée ici):
function js_htmlspecialchars(str) {
if (typeof(str) == "string") {
str = str.replace(/&/g, "&"); /* must do & first */
str = str.replace(/"/g, """);
str = str.replace(/'/g, "'");
str = str.replace(/</g, "<");
str = str.replace(/>/g, ">");
}
return str;
}
et donc :
document.getElementById("idcode").value = js_htmlspecialchars( document.getElementById("contenu").innerHTML );
Partager