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

JavaScript Discussion :

Remplir des input par JS et apostrophes.


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 19
    Points : 10
    Points
    10
    Par défaut Remplir des input par JS et apostrophes.
    Voila, je veux faire un systeme qui charge depuis une BDD des infos qui definissent des "gabarit" pour remplir des input.
    Aucun probleme avec tout ce qui est php et sql. Mais ma fonction JS qui écrit les value des input fonctionne trés bien jusqu'à ce que les infos a ecrire contiennent des apostrophes ou des guillemets (comme par hasard...).

    Voila la fonction qui écrit dans les champs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function setGabarit (nom,note){
    		document.getElementById('nom').value = decoderJS(nom);
    		document.getElementById('note').value = decoderJS(note);
            }
    Tout ça marche trés bien. Mais quand le 'nom' ou la 'note' contient un ou des apostrophe, ça me met \' ou \" dans le input. Comme j'utilise le contenu du input pour mettre la BDD a jour, j'enregistre le \ puis le ' et ça ne va pas.
    A savoir, ça marche niquel avec easyPhP mais pluss du tout quand je le met en ligne... Je croyais que le JS s'executait sur le client...

    Et voici donc maintenant ma function decoderJS() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function decoderJS	(chaine) {
     		chaine = decodeURIComponent(chaine);
     		chaine = UTF8_tool.decode(chaine);
    		var aRemplacer = /\+/g;
    		chaine = chaine.replace(aRemplacer, " ");
    		return chaine;
     	}
    La functione UTF8 a été developpée par Rubik's Man et fonctionne parfaitement. Dans le code source généré, les apostrophes sont ecrites %27, ce qui est normal (d'où le decodeURIComponent(chaine)) mais ça montre bien que le \ est rajouté par le JS, au moment ou j'écris dans le input.
    Comment faire pour éviter ça ?

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    Bon bon bon...
    ERn fait, je regardais mon code source avec "afficher le code source de la selection" de Firefox. Du coup, je voyais une version 'interpretée' de ma source. En regardant le code de toute ma page, j'ai pu comprendre que c'était ma fonction php à qui il manquait un petit stripSlash...

    Donc, tout va bien, merci Firefox

    Il ne reste plus qu'un petit problème avec les <br/>. je voudrais les transformer en \r\n par JS mais le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var aRemplacer = <br/>;
    chaine = chaine.replace(aRemplacer, "\r\n");
    ne fonctionne pas, bien sûr car le <br/> de ma declaration de function est compris comme un retour a la ligne dans le HTML... C'est surement tout con mais... je seche ^^

  3. #3
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var aRemplacer = '<br/>';
    chaine = chaine.replace(aRemplacer, "\r\n");

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/02/2012, 12h23
  2. Réponses: 0
    Dernier message: 24/05/2011, 09h59
  3. Remplir des cellules par 0
    Par eddyG dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 01/10/2007, 15h13
  4. Remplir des input de type text dans une page HTML
    Par Rodrick dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 27/06/2007, 11h19
  5. remplir un Input par rapport à une BD
    Par pmboutteau dans le forum ASP
    Réponses: 10
    Dernier message: 24/08/2005, 10h35

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