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 :

value d'input, simple quote affichage coupé


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 338
    Points : 192
    Points
    192
    Par défaut value d'input, simple quote affichage coupé
    Bonjour,
    J'ai un soucis avec les quotes, j'ai beau chercher sur internet je n'arrive toujours pas à trouver de solution.
    Mes accents passent très bien dans la fonction js mais quand je veux les rajouter dans un input la variable est coupée au niveau du \ si je met pas de \ c'est couper au niveau de l'accent.
    code php:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $libelle  = str_replace("'","\'",$libelle);
    $description= str_replace("'","\'",$description);
    $libelle  = str_replace('"', "'+String.fromCharCode(34)+'",$libelle);
    $description= str_replace('"', "'+String.fromCharCode(34)+'",$description);
    <a href="javascript:ajout_input('<?php echo $libelle; ?>','<?php echo $description;?>')">
    code js:
    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
    function ajout_input(libelle, description)
    {
    alert(ingredient);//l'hotel ou la maison (pas de probleme pour l'accent à ce niveau)
    alert(libelle);
    ingredient =addslashes(ingredient);
    description= addslashes(description);
     var libelle = "<input type='texte' name='inputs_libelle' id='inputs_libelle'  value='"+libelle+"'>";
    		var description = "<input type='texte' name='inputs_description' id='inputs_description' value='"+description+"'>";
     
    alert(description);//<input type='texte' name='inputs_description' id='inputs_description'  value='l\'hotel ou la maison'>
    alert(libelle);
     
    		document.getElementById("inputs_libelle").innerHTML += libelle;
     
    		document.getElementById("inputs_description").innerHTML += description; //resultat afficher l\
     
     
    }
        function addslashes(str) {
             str=str.replace(/\'/g,'\\\'');
             //str=str.replace(/\"/g,'\\"');
            // str=str.replace(/\\/g,'\\\\');
            // str=str.replace(/\0/g,'\\0');
    return str;
        }
    Mes pages sont en uft8. Sinon les " passent très bien mais je suis bloquée avec les quote

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    Donne plutot un exemple de chaine que tu n'arrive pas à faire passer

    genre chaine initiale et code voulu en sortie ...

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 338
    Points : 192
    Points
    192
    Par défaut
    j'en vois $description = l'hotel ou la maison.

    Je veux afficher : l'hotel ou la maison, dans mon input que je vais ajouté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='texte' name='inputs_description' id='inputs_description'  value='"+description+"'>
    Ce qui devrait être généré:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='texte' name='inputs_description' id='inputs_description'  value=' l'hotel ou la maison'>
    Mais à la place j'ai :
    <input type='texte' name='inputs_description' id='inputs_description' value=' l '>

    Dans le input qui est bleu je devrais avoir l'hotel ou la maison à la place de l ( voir image)
    Images attachées Images attachées  

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Regarde le code HTML généré (celui que tu aurais dû poster si tu avais lu Important : Les règles incontournables d'utilisation de ce forum) et tu devrais comprendre facilement où se situe le problème...

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    inverse tes quotes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     var libelle = '<input type="texte" name="inputs_libelle" id="inputs_libelle"  value="'+libelle+'">';

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 338
    Points : 192
    Points
    192
    Par défaut
    Justement j'ai testé avec une alert(description) après avoir mi des \;

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='texte' name='inputs_description' id='inputs_description'  value='l\'hotel ou la maison'>

    mais dans ma page sa affiche : l\

    inverse tes quotes
    J'y avais pensé c'est vrai que sa marche mais du cout les " ne marchent plus

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    Ton souci provient en amont de php

    pour remplacer ' par \' il faut echapper le \ pour php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $chaine="l'heure de vérité";
    $res = str_replace("'","\\'",$chaine);

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 338
    Points : 192
    Points
    192
    Par défaut
    Sa ne marche pas : maintenant j'ai l\\
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    //quote
    $libelle  =str_replace("'","\\'",$libelle);
    $description= str_replace("'","\\'",$description);
    //guillemet
    $libelle = str_replace('"', "'+String.fromCharCode(34)+'", $libelle);
    $description= str_replace('"', "'+String.fromCharCode(34)+'", $description);

  9. #9
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    tu n'as pas besoin de remplacer les deux
    si tu as value =' ' tu remplaees les ' par \'
    si tu as value=" " tu remplaces les " par \"

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $chaine="l'heure de vérité";
    	$res = htmlentities($chaine, ENT_QUOTES);
    	echo  "<input type=\"text\" value='".$res."' />";
    et si tu es en UTF-8 ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $chaine="l'heure de vérité";
    	$res = htmlentities($chaine, ENT_QUOTES, "UTF-8");
    	echo  "<input type=\"text\" value='".$res."' />";

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 338
    Points : 192
    Points
    192
    Par défaut
    J'ai trouvé la solution mais j'ai toujours pas compris pourquoi mais \ ne fonctionne pas.

    Dans mon js à la place de remplacé par \\' je met &#039;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function addslashes(str) {
             str=str.replace(/\'/g,''');
    }
    Pour préparer mes variables à ma fonction js je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    //quote
    $libelle = str_replace("'", "\'", $libelle);
    $description= str_replace("'", "\'", $description);
     
    //guillemet
    $libelle = str_replace('"', "'+String.fromCharCode(34)+'", $libelle);
    $description= str_replace('"', "'+String.fromCharCode(34)+'", $description);

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    Ha ben au moins je me serais cassé le fion pour rien ...
    J'aime bien donner des solutions et me prendre un vent magistral ....

    les replace sont totalement inutiles

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 338
    Points : 192
    Points
    192
    Par défaut
    non mais j'ai essayer votre solution mais elle ne marchait pas. J'ai trouvé la solution grâce à votre message en regardant ce que généré avec le code source.
    Sans cette réponse je n'aurai pas trouvé.

  14. #14
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    non mais j'ai essayer votre solution mais elle ne marchait pas.
    Ha ??? Moi je l'ai testée et elle fonctionne !!!

    Donc je ne peux pas te laisser dire qu'elle ne marche pas .
    Je veux bien par contre que tu dise que tu n'as pas réussi à l'implémenter ...

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

Discussions similaires

  1. [Tableaux] souci avec des simples quotes
    Par Jean Fi dans le forum Langage
    Réponses: 6
    Dernier message: 29/03/2006, 21h13
  2. [MySQL] transformer une simple quote en double pour un insert !!
    Par st0nky dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/01/2006, 17h38
  3. [text] probleme avec simple quote
    Par bor1s dans le forum Langage SQL
    Réponses: 3
    Dernier message: 22/12/2005, 17h03
  4. Probleme avec encodage de simple quote
    Par linkowich dans le forum Langage
    Réponses: 2
    Dernier message: 31/10/2005, 14h16

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