IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques & Frameworks Discussion :

Caractére spéciaux + dijit.InlineEditBox [Dojo]


Sujet :

Bibliothèques & Frameworks

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de devkaty
    Inscrit en
    Mai 2009
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 174
    Par défaut Caractére spéciaux + dijit.InlineEditBox
    Salut tout le monde ,

    J'ai un problème avec l'enregistrement des modifications éffectuées avec dijit.InlineEditBox .Lors d'une modification d'une valeur telle que la nouvelle valeur contient des caractères spéciaux comme (? , # et / ) il donne une erreur par contre si la nouvelle valeur ne contient pas des caractéres spéciaux passe sans probléme .

    voila mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Title:    
         <div id="title" 
                dojoType="dijit.InlineEditBox" 
                editor="dijit.form.TextBox"      
                onchange="saveChange(this.id,arguments[0])" >
             Qui sommes nous ? 
        </div>
    Merci d'avance.

  2. #2
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Salut,

    Quelle erreur as tu ?
    J'ai essayé ton code et je n'ai aucun problème

    Tu utilises quelle version de Dojo ?

    ERE

  3. #3
    Membre confirmé Avatar de devkaty
    Inscrit en
    Mai 2009
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 174
    Par défaut
    Merci pour votre réponse j'utilise la version 1.3 de dojo .

    L'erreur que j'ai c'est :

    Probleme requete ajax
    Error: Unable to load save-change/id/4/newVal/ aa #m ?
    status:500

    En fait ,j'affecte le composant dojo, le type d'editeur et la methode qui permet d'enregistrer les modifications avec java script .

    voila le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function editZone (zone)
    {
        zone.document.getElementById(idElement);
        zone.setAttribute("dojoType","dijit.InlineEditBox" );
        zone.setAttribute("editor" , "dijit.form.TextBox");
        zone.setAttribute("onChange" , "saveChange(this.id,arguments[0])");
    }
    la méthode qui pemet d'enregistrer les modifications:

    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
    function saveChange(idZone, newVal)
    {
     dojo.xhrGet({
                la nouvelle valeur contien des caractéres spéciaux
    	        url :"save-change/idZone/" + idZone + "/newVal/" + newVal ,
    	        handleAs :"text",
    	        timeout :5000,
    	        load : function(response) {
                   alert("Modification effectuée avec succès ");
    	        },
    	        error : function(error) {
    	        alert('Probleme requete ajax \n ' + error);
    	        }
    	    })
    }

  4. #4
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Re,

    Plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function editZone (zone) {
       var saveZone = function() {
          saveChange(this.id,arguments[0]);
       };
       new dijit.InlineEditBox({onChange: saveZone, editor:"dijit.form.TextBox"}, zone);
    }
    ERE

  5. #5
    Membre confirmé Avatar de devkaty
    Inscrit en
    Mai 2009
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 174
    Par défaut
    Salut,

    J'ai testé ce code aussi mais toujours la meme erreur , je pense que c'est pas un probleme de création du composant.
    Il n'accept pas les caractéres spéciaux

  6. #6
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Salut,
    Citation Envoyé par devkaty Voir le message
    Salut,

    J'ai testé ce code aussi mais toujours la meme erreur , je pense que c'est pas un probleme de création du composant.
    Il n'accept pas les caractéres spéciaux
    Mon code était de toute façon meilleur
    Plus sérieusement, que vaut newVal AVANT l'appel à xhrGet ?

    C'est vraiment très étonnant car je ne rencontre aucun problème.
    As tu possibilité de m'envoyer un exemple de page complète (même de test) pour que je tache de reproduire lesouci de mon côté ?

    ERE

  7. #7
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Re,

    Bien reçu ton code. Chez moi il fonctionne parfaitement mais je crois savoir d'où vient ton problème

    tu envoies comme url
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    save-change/idZone/" + idZone + "/newVal/" + newVal
    Donc si newVal vaut par exemple /t.php?nom=martin&prenom=eric cela donne cette url:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    save-change/idZone/33/newVal/t.php?nom=martin&prenom=eric
    , il va chercher t.php

    Donc selon le texte que tu passes cela peut se transformer en un complément d'URL. Note au passage que c'est une ENORME faille de sécurité.
    Pour éviter cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    url :"save-change/idZone/" + idZone + "/newVal/" + encodeURIComponent(newVal) ,
    Et note enfin que si c'est le souci, on aurait pu s'en apercevoir quand je te demandais
    Plus sérieusement, que vaut newVal AVANT l'appel à xhrGet ?


    ERE

  8. #8
    Membre confirmé Avatar de devkaty
    Inscrit en
    Mai 2009
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 174
    Par défaut
    Merci beaucoup pour votre aide

    Citation Envoyé par emmanuel.remy Voir le message
    Salut,


    Mon code était de toute façon meilleur
    Plus sérieusement, que vaut newVal AVANT l'appel à xhrGet ?


    ERE
    Je veux une chose que votre code est toujours meilleur

    La valeur de newVal avant xhrGet c'est la nouvelle valeur passe comme argument a la methode saveChange.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    zone.setAttribute("onChange" , "saveChange(this.id,arguments[0])");
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function saveEditionWeb(id, newVal)
    {
    ...
    }
    Mais malheureusement il ya toujours le meme erreur avec 'slash' (/) si la nouvelle valeur contient un slash il affiche erreur ex :04/08/2009 par contre il passe ( # et ?).

    Merci autre fois.

  9. #9
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    As tu essayé comme je te le disais de faire encodeURIComponent(newVal) ?

    ERE

  10. #10
    Membre confirmé Avatar de devkaty
    Inscrit en
    Mai 2009
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 174
    Par défaut
    Oui j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     url :"save-change/id/" + id + "/newVal/" + encodeURIComponent(newVal),
    Et quand j'ai entré ( # et ?) il passe sans probleme par contre avec slash (/) passe pas

  11. #11
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Citation Envoyé par devkaty Voir le message
    Oui j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     url :"save-change/id/" + id + "/newVal/" + encodeURIComponent(newVal),
    Et quand j'ai entré ( # et ?) il passe sans probleme par contre avec slash (/) passe pas
    Par contre là c'est normal, car tu passes par une url (pas par un paramètre d'URL, ce qui fait toute la différence), donc même en encodant %2F (le slash encodé) c'est en fait un slash qui est vu... Tu n'y peux rien la norme des uri.

    ERE

  12. #12
    Membre confirmé Avatar de devkaty
    Inscrit en
    Mai 2009
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 174
    Par défaut
    Alors on peux rien faire , on peux pas entrer des slash !!

    y-a pas solustion pour cette probleme ?

  13. #13
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Citation Envoyé par devkaty Voir le message
    Alors on peux rien faire , on peux pas entrer des slash !!

    y-a pas solustion pour cette probleme ?
    Si tu tiens à avoir ce type d'url (au passage: pas prévu pour faire cela), alors substitue aux slash un autre caractère (µ par exemple) et substitue de nouveau sur le server...
    Mais si tu passais un paramètre ce serai quand même plus simple...

    ERE

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Dojo] dijit.layout.ContentPane href caractères spéciaux
    Par gregory.coulon dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 05/10/2010, 09h49
  2. Où trouver la liste des caractères spéciaux?
    Par gamez dans le forum Langage
    Réponses: 3
    Dernier message: 19/08/2003, 17h54
  3. Transformation XSL et caractères spéciaux
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 4
    Dernier message: 28/04/2003, 10h38
  4. [Sybase] filtre sur caractères spéciaux
    Par montelieri dans le forum Sybase
    Réponses: 4
    Dernier message: 07/04/2003, 16h49
  5. Traiter les caractères spéciaux
    Par ricola dans le forum Langage
    Réponses: 2
    Dernier message: 20/02/2003, 09h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo