[Javascript] Problème TinyMCE.getContent()
Résolu/Fermé
drazx974
Messages postés
48
Date d'inscription
mardi 16 décembre 2008
Statut
Membre
Dernière intervention
13 octobre 2009
-
3 mars 2009 à 12:46
drazx974 Messages postés 48 Date d'inscription mardi 16 décembre 2008 Statut Membre Dernière intervention 13 octobre 2009 - 10 mars 2009 à 07:14
drazx974 Messages postés 48 Date d'inscription mardi 16 décembre 2008 Statut Membre Dernière intervention 13 octobre 2009 - 10 mars 2009 à 07:14
A voir également:
- [Javascript] Problème TinyMCE.getContent()
- Telecharger javascript - Télécharger - Langages
- Javascript echo ✓ - Forum PHP
- Erreur #125 javascript - Forum Mozilla Firefox
- Table de multiplication javascript ✓ - Forum Javascript
- Xxwxx dll virus javascript - Forum Virus
6 réponses
drazx974
Messages postés
48
Date d'inscription
mardi 16 décembre 2008
Statut
Membre
Dernière intervention
13 octobre 2009
8
6 mars 2009 à 19:17
6 mars 2009 à 19:17
lol oui oui j'ai un name sur mon textarea, mais par précaution je re-vérifirais au cas où ^^
Je précise que le code que je donne au début c'est mon code de teste pour le vrai site.
PS:Où as-tu eu la réponse par rapport au getInstanceById[...]innerHTML ?
Je précise que le code que je donne au début c'est mon code de teste pour le vrai site.
PS:Où as-tu eu la réponse par rapport au getInstanceById[...]innerHTML ?
vindicien
Messages postés
131
Date d'inscription
vendredi 6 mars 2009
Statut
Membre
Dernière intervention
22 février 2011
33
9 mars 2009 à 11:26
9 mars 2009 à 11:26
Salut !!!
Ecoute cette solution je l'ai trouvé il y a quelques temps sur google je ne sais plus d'ou ca vient exactement.
Moi je travaille en textarea et non en div, ça semble etre la seule différence.
Tu peux éventuellement juste essayer un "escape" en javascript lors de l'envoie de test données
Moi j'enregistre le contenu directement en base en Ajax. Je t'envoie ma méthode si ca peut t'aider :
HTML
Javascript
PHP
Ecoute cette solution je l'ai trouvé il y a quelques temps sur google je ne sais plus d'ou ca vient exactement.
Moi je travaille en textarea et non en div, ça semble etre la seule différence.
tinyMCE.init({ // General options mode : "textareas", theme : "advanced", .........
Tu peux éventuellement juste essayer un "escape" en javascript lors de l'envoie de test données
escape(tinyMCE.getInstanceById('id_de_ton_editeur').getBody().innerHTML)
Moi j'enregistre le contenu directement en base en Ajax. Je t'envoie ma méthode si ca peut t'aider :
HTML
<table id="div_add"> <tr><td colspan="2">CREER UN NOUVEAU MESSAGE</td> <tr><td colspan="2">Titre : <input type="text" id="titre"></td> <tr><td colspan="2">Contenu :</td></tr> <tr><td colspan="2"><textarea id="new_predef" name="new_predef"></textarea></td></tr> <tr> <td onclick="masquer_standard()" class="entete" >Retour</td> <td onclick="save_standard()" class="entete" align="right">Ajouter</td> </tr> </table>
Javascript
function save_standard() { if(document.getElementById("titre").value == "") { document.getElementById("titre").value = window.prompt("Vous n'avez pas saisi de titre, veuillez entrer un titre SVP","titre..."); } else { ajouter_predef_en_base(document.getElementById("titre").value,tinyMCE.getInstanceById('new_predef').getBody().innerHTML); } } var xhr = null; var d; function getXhr(){ if(window.XMLHttpRequest) // Firefox et autres xhr = new XMLHttpRequest(); else if(window.ActiveXObject) { // Internet Explorer try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } } else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); xhr = false; } } function ajouter_predef_en_base(titre,predef) { getXhr(); // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function() { // On ne fait quelque chose que si on a tout reçu et que le serveur est ok if(xhr.readyState == 4 && xhr.status == 200) { tinyMCE.getInstanceById('new_predef').getBody().innerHTML = ""; //et tu mets les traitements que tu veux également faire. //Cette me permet de rajouter des messages en base sans changer de page. } } // Ici on va envoyer en post dans le fichier ajax.php xhr.open("POST","ajax.php",true); // ne pas oublier ça pour le post xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded;"); xhr.send("titre="+escape(titre)+"&predef="+escape(predef)); }
PHP
... $requete = mysql_query("INSERT INTO predef(`id`,`id_user`,`titre`,`contenu`,`place`) values (NULL,'".$_SESSION['user']."','".$_POST['titre']."','".addslashes(htmlentities($_POST['predef']))."',".($sql[0]+1).")"); ...
Essaies ca peut être :
tinyMCE.getInstanceById('id_de_ton_editeur').getBody().innerHTML
En tout cas c'est ce que j'utilise ;-)
Bonne journée
tinyMCE.getInstanceById('id_de_ton_editeur').getBody().innerHTML
En tout cas c'est ce que j'utilise ;-)
Bonne journée
drazx974
Messages postés
48
Date d'inscription
mardi 16 décembre 2008
Statut
Membre
Dernière intervention
13 octobre 2009
8
6 mars 2009 à 11:38
6 mars 2009 à 11:38
Génial, merci beaucoup, maintenant je peux récupérer mon contenu. Par contre le problème c'est qu'il n'est pas envoyé.
j'ai mis dans un OnSubmit sur mon formulaire
document.getElementById('id_de_mon_textarea').innerHTML = tinyMCE.getInstanceById('id_de_mon_div').getBody().innerHTML
, une alerte pour vérifier le contenu du textarea (qui fonctionne) mais l'envoi du textarea est vide.
Je ne comprend pas où ça coince puisque le onsubmit c'est justement pour faire des manip avant l'envoi du formulaire.
Je posterais les sources quand je retournerais au boulot.
j'ai mis dans un OnSubmit sur mon formulaire
document.getElementById('id_de_mon_textarea').innerHTML = tinyMCE.getInstanceById('id_de_mon_div').getBody().innerHTML
, une alerte pour vérifier le contenu du textarea (qui fonctionne) mais l'envoi du textarea est vide.
Je ne comprend pas où ça coince puisque le onsubmit c'est justement pour faire des manip avant l'envoi du formulaire.
Je posterais les sources quand je retournerais au boulot.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut salut !!
Pour ton formulaire, as tu un "name" pour ta textarea ?
Lorsque tu transmets ton formulaire les $_POST[''] sont ceux des "name" des éléments du formulaire, pas des "id".
Par exemple $_POST['nom_de_ma_textarea'] récupèrera la textarea du formulaire : <textarea name="nom_de_ma_textarea"></textarea>
Si elle est juste définie par un "id" c'est donc normal que tu ne réceptionne rien du tout.
Pour ton formulaire, as tu un "name" pour ta textarea ?
Lorsque tu transmets ton formulaire les $_POST[''] sont ceux des "name" des éléments du formulaire, pas des "id".
Par exemple $_POST['nom_de_ma_textarea'] récupèrera la textarea du formulaire : <textarea name="nom_de_ma_textarea"></textarea>
Si elle est juste définie par un "id" c'est donc normal que tu ne réceptionne rien du tout.
drazx974
Messages postés
48
Date d'inscription
mardi 16 décembre 2008
Statut
Membre
Dernière intervention
13 octobre 2009
8
10 mars 2009 à 07:14
10 mars 2009 à 07:14
C'est bon ça fonctionne niquel, avec le textarea. Avec tout se que j'avais essayé je commençais à ne plus y croire.
Mais pourquoi le getContent ne fonctionne pas ?
Enfin bref je vais enfin pouvoir avancer un peu. Merci Beaucoup
Mais pourquoi le getContent ne fonctionne pas ?
Enfin bref je vais enfin pouvoir avancer un peu. Merci Beaucoup