UPDATE ... SET
RésoluJ'ai besoin d'aide svp.
J'ai deux feuilles pour editer un champ dans la base de données, mais j'ai un problème et sollicite votre aide.
index.php a ceci :
<form action="add_notes.php" method="get"> <textarea name="BlocNotes" id="input" style="width:100%; height:200px;"><?php echo utf8_encode(stripslashes($data['BlocNotes'])); ?></textarea> <input name="envoyer" type="submit" class="btn blue" id="button" value="Enregistrer la note" /> </form>
La seconde feuilles qui est add_notes.php a ceci :
<?php
if(isset($_POST['BlocNotes'])) $BlocNotes=$_POST['BlocNotes']; else $BlocNotes="";
if(empty($BlocNotes)){echo '<div class="Erreur">Il n\'y a aucune note dans le Bloc notes.</div>';}
else {$db = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) or die('Erreur de connexion '.mysql_error()); mysql_select_db(MYSQL_BASE,$db) or die('Erreur de selection '.mysql_error());
$sql = "UPDATE Alifat_Blocnotes SET BlocNotes='$BlocNotes' WHERE NumId='1'";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
echo '<div class="Message">Bloc notes enregistré avec succès.</div>';
mysql_close();} ?>
Si je garde else $BlocNotes=""; j'ai le message d'erreur qui s'affiche. Et si je le retire, j'ai une édition bizarre.
Le texte initial est : les élèves vont êtres surpris, et s'il y avait du danger...
Si j'edite donc j'aurai ceci : les Ãf©lÃf¨ves vont Ãfªtres surpris, et s'il y avait du danger...
Or j'avais juste demandé à supprimer ", et s'il y avait du danger..."
L'édition ne s'exécute pas entièrement.
Pouvez-vous m'aider svp ?
Merci d'avance.
34 réponses
Problème d'encodage et de sauvegarde d'un champ BlocNotes entre une page de saisie et le script de mise à jour MySQL. La chaîne est affichée avec utf8_encode et le formulaire utilise la méthode GET, ce qui peut entraîner des caractères corrompus et une édition partielle. Des solutions proposées incluent retirer utf8_encode et ajouter onsubmit='editor.post()' afin que les mises à jour du WYSIWYG se répercutent correctement dans la textarea lors de l'enregistrement. En pratique, l'utilisation de POST plutôt que GET et une gestion cohérente du charset peuvent aussi éviter les textes affichés en pseudo-encodage lors des réouvertures.
-
Voilà ce qu'il fallait faire alors :
<form action="add_notes.php" method="POST" onsubmit="editor.post()">
</form> -
Waw ! C'est tout ce qu'il fallait ????
Punaise !!!!!!!!!!
Effectivement ça fonctionne :'( !!
Merci à vous deux le père et Mihawk ! Vous avez étés vraiment génial tous les deux !
Merci pour votre patience et votre aide à tous les deux ! -
Je viens de trouver la solution pour le problème de non-prise en compte dans l'édition. Il faut lire ce qui est écrit sur le site de l'éditeur
Keep in mind that before posting you will need to call the instance.post() function to ensure that the latest changes in the WYSIWYG translate into the text area.
Autrement dit, il suffit d'ajouter onsubmit="editor.post()" dans la balise <form> et chez moi ça marche très bien. -
J'ai installé le script chez moi pour voir.
Il ne semble pas poser de problème d'encodage, il ne faut pas mettre la fonction utf8_encode, c'est tout.
Par contre, il ne prend en compte les modifications qu'en mode source. Et ceci qu'on soit en utf8 ou pas, qu'il y ait des caractères spéciaux ou pas.
Je n'ai pas trouvé de manuel de cet éditeur, tu as un lien sur le site de l'éditeur (du logiciel)?-
-
-
Voilà d'où moi je l'ai téléchargé :
http://www.scriptiny.com/2010/02/javascript-wysiwyg-editor/ -
-
-
Pareil... pas d'enregistrement
-
ContributeurEt en virant le <script>....</script> du form et en le mettant en fin de page ?!
-
idem problème... rien n'a changé !
-
ContributeurEt si tu transformes le method="GET" du formulaire en method="POST" ...?
-
J'ai ajouté ça, mais rien y fait... pareil
-
Contributeurhttps://www.tiny.cloud/docs/quick-start/
Je ne vois nulle part ton :
tinyMCE.init({ mode : "textareas" });
-
Non, il y a le même problème !
Essais d'éditer le texte et valide pour voir le résultat ! -
J'ai installé FireBug et je suis allé sur la console. Apparemment aucune erreur n'est signalée...
Attends...
Voici la page en question (j'ai retiré l'accès sécurisé)
http://alifat-ci.com/V2/admin/Services/index.php -
Bon, savez-vous ou je peux trouver un éditeur de texte qui fonctionnerait svp ?
-
J'ai installé FireBug et je suis allé sur la console. Apparemment aucune erreur n'est signalée...
-
Oui je l'ai toujours... tu proposes une solution pour cela ?
-
J'ai bien peur de ne pas pouvoir t'en dire plus. Il faudrait aller voir sur les forums consacrés à cet éditeur, il doit bien y en avoir. Bonne chance.
Au fait, tu as toujours method="get" et tu utilises $_POST pour recevoir tes données ? je ne comprends pas comment ça peut marcher. Il y a peut-être un truc là. -
ContributeurInstalle Firebug, active la console pour voir les erreurs Javascript et relance ta page. Manifestement tu n'initialises pas TinyMCE comme il faut.
Mihawk
"The Weapon of Choice" -
Effectivement, c'est le <script..</script> qui pose problème.
Lorsque je le retire, il affiche un textarea "normal" et lors de l'édition il fait ce qu'il faut.
Si je remet, alors il se transforme (le textarea) en mode mise en forme (comme l'image ci-dessus) et nous pose ce problème... -
Non, ce qui compte, c'est qu'il y aitr id et name dans ta balise textarea, et c'ets bien le cas.
Pour vérifier si c'est le script qui nous embête, on va essayer de s'en passer
Retire le passage <script..</script> après le texarea
Retire la fonction utf8_encode avant le textarea
Et regarde si ça édite bien maintenant (avec des nouveaux messages, les anciens sont corrompus désormais) -
Effectivement, c'est ce que je pensais...
J'ai ajouter dans ce code :<textarea name="BlocNotes" id="BlocNotes" style="width:100%; height:200px" onKeyUp="document.getElementById('BlocNotes2').value = this.value"><?php echo utf8_encode(stripslashes($data['BlocNotes'])); ?></textarea> <script type="text/javascript"> new TINY.editor.edit('editor',{ name:'BlocNotes', id:'BlocNotes', width:'100%', height:280, cssclass:'te', controlclass:'tecontrol', rowclass:'teheader', dividerclass:'tedivider', controls:['bold','italic','underline','strikethrough','|','subscript','superscript','|', 'orderedlist','unorderedlist','|','outdent','indent','|','leftalign', 'centeralign','rightalign','blockjustify','|','unformat','|','undo','redo','n', 'font','size','style','|','image','hr','link','unlink','|','cut','copy','paste','print'], footer:true, fonts:['Calibri','Courier New','Verdana','Arial','Georgia','Trebuchet MS'], xhtml:true, cssfile:'style.css', bodyid:'editor', footerclass:'tefooter', toggle:{text:'source',activetext:'wysiwyg',cssclass:'toggle'}, resize:{cssclass:'resize'} }); </script>Pour avoir dans un autre Textarea le contenue de mon premier textarea.
En mode mise ne forme il n'affiche rien mais en mode source il copie le contenu du premier au second...
Donc le problème vient du javascript.
Je penses que si j'arrive à mettre le "name" en valeur, il prendra en compte l'enregistrement... qu'en pensez-vous ?
- 1
- 2