|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre régulier
![]() Inscription : juin 2005 Messages : 449 ![]() |
Bonjour à tous,
Je m'essaye au framwork dojo et j'ai quelques soucis... Je n'arrive pas à valider un formulaire et à envoyer mes infos au serveur Voici ce que je fais actuellement (j'ai essayé de nombreuses solutions) : Code :
Sous IE 6.0 j'ai comme résultat : le code HTML inséré des le départ (comme ci-dessus) si je le modifie c'est toujours le même texte affiché coté serveur. Sous FireFox j'ai comme résultat : null Est ce que quelqu'un a une idée ??? Je ne trouve rien sur le net. La doc dojo est détaillée mais j'ai l'impression qu'il n'y a rien sur la communication client --> serveur, je ne parle pas des communications serveur --> client. Merci de vos aides en tout cas !! |
||
|
|
00
|
|
|
#2 |
|
Membre régulier
![]() Inscription : juin 2005 Messages : 449 ![]() |
Personne n'a été confronté au problème ?
Je vous remercie de vos aides !! |
|
|
00
|
|
|
#3 | ||||
|
Membre actif
![]() Inscription : avril 2007 Messages : 286 ![]() |
Bonjour,
voila ce dont je me sers pour envoyer mes scripts au serveur : page principale : Code :
Code :
Bon courage! Et si tu trouves autre chose n'hésites pas à le poster, ça m'interresse!
__________________
" Pourquoi y a-t'il quelque chose plutôt que rien? " Leibniz |
||||
|
|
00
|
|
|
#4 |
|
Membre régulier
![]() Inscription : juin 2005 Messages : 449 ![]() |
Qu'inclue tu comme librairies dojo ?
Je n'ai pas le script io.js dans ma version...... |
|
|
00
|
|
|
#5 | |||||||
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 3 ![]() |
Bonjour,
Le problème semble venir d'un bug de dojo : pour construire l'éditeur, dojo modifie énormément la structure HTML (voyez le résultat avec Firebug), et le champ de nom field_1 n'est plus du tout un textarea, si bien que le contenu de l'éditeur n'est pas envoyé au serveur lors de la soumission du formulaire. Voici un contournement. En JavaScript, il est possible de récupérer le contenu de l'éditeur construit sur le champ field_1 par dijit.byId("field_1").getValue(). Lors de la validation du formulaire, nous pouvons donc copier ce contenu dans un simple champ caché, qui sera alors transmis côté serveur. Rajoutons donc dans le HTML un champ caché. Donnons-lui pour nom et pour id editorContent. Le nom est pour la validation, et le id pour dojo. Code :
Code :
Au passage, il vaut mieux faire réagir à l'événement submit sur le formulaire, plutôt qu'au clic sur le bouton de validation : s'il y a un champ de saisie texte, l'utilisateur pourrait soumettre le formulaire en tapant entrée dans ce champ. Avec l'événement sur le bouton, la réaction n'aurait pas lieu, alors qu'elle est garantie avec l'événement sur le onsubmit. Dernière remarque : les sources dojo pèsent très très lourd, et si vous n'avez pas besoin d'autres widgets sur la page, il vaut mieux limiter les require et les inclusions de script au strict nécessaire. Dans la section 2, un seul require suffit ("dijit.Editor"), et dans la section 1, il suffit d'écrire : Code :
Citation:
|
|||||||
|
|
00
|
|
|
#6 |
|
Membre régulier
![]() Inscription : juin 2005 Messages : 449 ![]() |
Cela ne fonctionne pas....
Ma variable affichée coté serveur m'affiche cette fois pour les deux navigateurs absolument rien, enfin du texte vide sans même aucun espace. Je ne comprend pas..... Merci de votre aide !!! |
|
|
00
|
|
|
#7 | |||||
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 3 ![]() |
Citation:
Pour que ce soit compact, j'ai tout mis dans une page PHP. Lors du premier appel, elle affiche le formulaire contenant l'éditeur dojo, et lorsque l'utilisateur valide le formulaire, celui-ci est envoyé vers la même page qui renvoie alors le contenu simple saisi dans l'éditeur. Voici le code : Code :
Bien sûr, il vaut mieux utiliser l'éditeur dojo avec une sauvegarde en Ajax, c'est à dire que le bouton sauver effectue la sauvegarde sur le serveur et indiquera simplement que ça s'est bien passé par un message sur la page. Voici une variante de la page précédente, qui fait cela : Code :
De cette façon, l'éditeur marche aussi avec nos caractères accentués. Cet exemple en PHP s'adapte simplement en J2EE : la page qui contient le formulaire devient une JSP, et le code qui met à jour le fichier côté serveur est dans le contrôleur (servlet, ou si vous êtres en struts, classe action). En .Net, le formulaire se mettrait dans le aspx, et le traitement serveur dans le code behind. IE et Firefox envoient un contenu légèrement différent : Firefox envoie des caractères blancs supplémentaires, au contraire d'IE qui envoie juste ce qu'il faut, semble-t-il. Ci-dessous, deux images de l'édition et de la sauvegarde. |
|||||
|
|
00
|
|
|
#8 | ||||
|
Membre régulier
![]() Inscription : juin 2005 Messages : 449 ![]() |
Je me retrouve avec une erreur en essayant l'enregistrement en ajax. La validation du formulaire ne foncitonnant toujours pas.
Voici l'erreur que j'ai avec firebug : Code :
dojo.byId("editorContent").value = dijit.byId("field_1").getValue(); Code :
dojo.byId("field_1") has no properties Code :
Code :
|
||||
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() Inscription : mai 2004 Messages : 1 253 ![]() |
L'erreur provient du client, pas du serveur.
Remplace la ligne Code :
<textarea name="field_1" height="175px" width="200px" dojoType="dijit.Editor" > Code :
<textarea id="field_1" name="field_1" height="175px" width="200px" dojoType="dijit.Editor" > dojo recherche un élément en fonction de son id et pas de son name. IE est plus souple et autorise l'élément name comme étant un champ id, ce que ne permet pas Firefox (qui fait exactement ce que le standard veut, lui). |
|
|
00
|
|
|
#10 |
|
Membre régulier
![]() Inscription : juin 2005 Messages : 449 ![]() |
Ca fonctionne !!!! Vraiment trop bête ....
Merci beaucoup ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com