|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||||||
|
Membre expérimenté
![]() ![]() Inscription : mars 2005 Messages : 648 ![]() |
Bon, j'ai essayé de faire un titre clair mais les explications sont innévitables:
Contexte: Je créer un forum dans lequel les utilisateur clique sur "Modifier message" pour que la zone du message devienne éditable sur le champs. Une fois modifié, l'utilisateur clique sur "Enregistrer les modifications" et le message se sauvegarde et le message s'actualise (le message et non la page). Scripts utilisés Pour se faire, j'utilise: - la librairy Prototype (même si vous ne connaissez-pas, vous pouvez surement aider quand même) - l'éditeur WYSIWYG nommé FCKeditor Code d'affichage de la zone d'édition Voici le code qui est exécuté lorsqu'un utilisateur clique sur "modifier le message": Code :
http://localhost/4daction/WebBugIndex/?page=modifiermsg&step=1&no=555 ... va retourner une source telle que: Code :
Jusqu'ici, tout fonctionne #1 Code de sauvegarde de la zone d'édition Code :
Je n'arrive pas à récupérer le texte modifié. Avez-vous une idée ? |
||||||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() danseur Inscription : août 2003 Messages : 2 667 ![]() |
et dans pars, tu es censé récupérer la valeur de la zone?
|
|
|
00
|
|
|
#3 |
|
Membre expérimenté
![]() ![]() Inscription : mars 2005 Messages : 648 ![]() |
Exactement, la fonction $F() est équivalente à document.getElementById("...").value
Mais le problème c'est que c'est la valeur INITIALE que ca récupère. je n'ai aucune idée ou FCKeditor s'ammuse à stocker le message modifié... :-\ |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() danseur Inscription : août 2003 Messages : 2 667 ![]() |
Code :
var pars = escape($F("vpMessage"+nomsg)); |
|
|
00
|
|
|
#5 |
|
Membre expérimenté
![]() ![]() Inscription : mars 2005 Messages : 648 ![]() |
http://www.sergiopereira.com/articles/prototype.js.html
^^ Deuxième carré gris foncé: "Using the $F() function". Si tu préfère, on peux dire que j'Ai ceci comme code, ca reviend au même. var pars = "vpMessage="+escape(document.getElementById("vpMessage"+nomsg).value); pars retourne quelque chose comme: vpMessage=Ceci est mon message pars est en fait la chaine de toutes les variables que je retourne en post. |
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() danseur Inscription : août 2003 Messages : 2 667 ![]() |
ben alors, vois si Updater traite comme voulu le paramètre "textarea";
j'imagine que tu n'as aucune erreur signalée par ailleurs? |
|
|
00
|
|
|
#7 |
|
Membre expérimenté
![]() ![]() Inscription : mars 2005 Messages : 648 ![]() |
Non, aucune erreur de pertinente (certaine en CSS et des trucs du genre, mais vraiment vraiment rien de pertinent).
Et je fais c'est que si je fais un: alert(pars); juste AVANT le updater, je constate que le message est l'ANCIEN, pas le modifié. Donc ceci me mène à penser que FCKeditor rend la zone invisible et met la sienne à la place. Sauf que je n'ai AUCUNE idée de comment aller chercher cette valeur. Aucun expert en FCKeditor dans le coin ? |
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() danseur Inscription : août 2003 Messages : 2 667 ![]() |
bah, effectivement, on ne peut pas dire grand chose sans connaître les fonctions utilisées...
change éventuellement l'appel de SaveChange(); Code :
<a href="#" onclick="SaveChange(555);return false">Sauvegarder</a> |
|
|
00
|
|
|
#9 |
|
Membre expérimenté
![]() ![]() Inscription : mars 2005 Messages : 648 ![]() |
Quel est l'intérêt du return false; ?
|
|
|
00
|
|
|
#10 |
|
Expert Confirmé
![]() danseur Inscription : août 2003 Messages : 2 667 ![]() |
selon les navigateurs, le"#" en href ne suffit pas à bloquer le lien; là, tu as la garantie de ne pas changer de page sans t'en apercevoir...
|
|
|
00
|
|
|
#11 | ||||
|
Membre expérimenté
![]() ![]() Inscription : mars 2005 Messages : 648 ![]() |
Ok, je pense que j'ai réussit.
FCKeditor transfert la valeur modifié vers le textarea lorsque le form est envoyé seulement. Donc: Code :
Code :
Ma méthode est quand même bonne ? |
||||
|
|
00
|
|
|
#12 |
|
Expert Confirmé
![]() danseur Inscription : août 2003 Messages : 2 667 ![]() |
un peu zarbi...
en fait, xhr et le formulaire font double emploi; mais évidemment, si FCK veut un formulaire et une soumission hein! |
|
|
00
|
|
|
#13 |
|
Membre expérimenté
![]() ![]() Inscription : mars 2005 Messages : 648 ![]() |
xhr c'est quoi ?
Le truc c'est que FCK fait un addEventListener sur le "onSubmit" d'un formulaire afin de "replacer" la valeur modifié dans la zone de texte juste avant que le formulaire soit soumis. Et en Ajax, je ne veux PAS envoyer le formulaire. Je veux juste récupérer la valeur modifié de la zone de texte. |
|
|
00
|
|
|
#14 |
|
Expert Confirmé
![]() danseur Inscription : août 2003 Messages : 2 667 ![]() |
oui oui;
[xhr = ajax] |
|
|
00
|
|
|
#15 |
|
Membre expérimenté
![]() ![]() Inscription : mars 2005 Messages : 648 ![]() |
Il y a une différence (ou une signification de XHR ) par rapport à AJAX ?
|
|
|
00
|
|
|
#16 | ||||
|
Invité de passage
![]() |
Bonsoir, je sais que j'arrive bien après la bataille, mais j'ai trouvé une solution pour obtenir la valeure ou exécuter des commandes sans avoir à envoyer de formulaire si on implémente FCK en javascript (pour les autres implémentations il suffit de modifier le contexte des fonctions).
Tout ce passe dans le fichier fckeditor.js (ou dans un fichier 'common' pour les autres implémentations): Code :
Code :
|
||||
|
|
00
|
|
|
#17 | ||
|
Invité de passage
![]() Inscription : juillet 2005 Messages : 6 ![]() |
Je viens de trouver, et je voudrais vous en faire profiter vu que cette discussion m'a mis sur la piste.
En recherchant dans le code de FCKEditor, j'ai trouver qu'il fallait appeler cette fonction : C'est tout bête. Vous faîtes ceci avant d'envoyer votre formulaire AJAX ou autre. Pour ma part, j'utilise JQuery pour appeler une page de script pour traiter les données du formulaire. Code :
Le plus important, c'est la ligne qui est insérée juste avant d'envoyer mes données via la fonction JQuery "post". En espérant en avoir aidé quelques uns d'entre nous ! |
||
|
|
00
|
|
|
#18 |
|
Invité de passage
![]() Inscription : juillet 2005 Messages : 6 ![]() |
Sinon, il y en encore mieux :
http://wiki.fckeditor.net/Troublesho...64b60a41253d76 C'est officiel, et c'est une classe Javascript pour rafraichir tous vos champs FCKEditor en une passe avant d'envoyer une requête AJAX. |
|
|
00
|
|
|
#19 |
|
Invité de passage
![]() Inscription : octobre 2007 Messages : 6 ![]() |
Salut,
tu dit : Sinon, il y en encore mieux : http://wiki.fckeditor.net/Troublesho...64b60a41253d76 C'est officiel, et c'est une classe Javascript pour rafraichir tous vos champs FCKEditor en une passe avant d'envoyer une requête AJAX. Malheureusement le lien a sauté il on tout changer sur leur site Merci d'avance... |
|
|
00
|
|
|
#20 |
|
Invité régulier
![]() Inscription : juillet 2009 Messages : 8 ![]() |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com