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":
La page:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 <div id='divmsg555'> Ceci est le message innitial non-modifié <a href="javascript:void(0);" onclick="LoadEditor(555);">Modifier le message</a> </div> <div id='divmsg554'> Ceci est le message #2 innitial non-modifié <a href="javascript:void(0);" onclick="LoadEditor(554);">Modifier le message</a> </div> <script> var CasNo; function LoadEditor(msgno){ CasNo=msgno; var myAjax = new Ajax.Updater('divmsg'+msgno, 'http://localhost/4daction/WebBugIndex/?page=modifiermsg&step=1&no='+msgno, {method: 'get', onComplete: LoadModify}); } function LoadModify(){ var sBasePath='/js/'; var oFCKeditor=new FCKeditor('vpMessage'+CasNo); oFCKeditor.BasePath=sBasePath; oFCKeditor.ToolbarSet='smi'; oFCKeditor.ReplaceTextarea(); } </script>
http://localhost/4daction/WebBugIndex/?page=modifiermsg&step=1&no=555
... va retourner une source telle que:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <textarea name="vpMessage555" id="vpMessage555" class="msg">Ceci est le message innitial non-modifié</textarea> <br /> <div style="text-align:right;font-size:8pt;margin-right:20px;"> <strong>Action à effectuer:</strong> <a href="javascript:void(0);" onclick="NoChange(555);">Annuler</a> | <a href="javascript:void(0);" onclick="SaveChange(555);" style="font-weight:bold;">Sauvegarder</a> <div>
Jusqu'ici, tout fonctionne #1
Code de sauvegarde de la zone d'édition
Ici, rien ne va. $F("vpMessage"+nomsg) retourne toujours le message non-modifié, soit: Ceci est le message innitial non-modifié
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 function SaveChange(nomsg){ var pars = 'vpMessage='+escape($F("vpMessage"+nomsg)); var myAjax = new Ajax.Updater('divmsg'+nomsg, 'http://localhost/4daction/WebBugIndex/?page=modifiermsg&step=2s&no='+nomsg, {method: 'post', parameters: pars}); }
Je n'arrive pas à récupérer le texte modifié. Avez-vous une idée ?
Partager