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

Langage PHP Discussion :

Afficher quote/guillemet dans un input


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Points : 21
    Points
    21
    Par défaut Afficher quote/guillemet dans un input
    Vous me direz ya pas plus con.
    Mon souci c'est que la je bloque sur un ptit truc.

    Ma question est comment bien afficher une variable dans input text sachant que cette variable peut contenir des " ou ' ou encore des espaces.
    J'ai fais plusieurs tests et a chaque fois c'est un de ces caractères qui s'affichent mal.

    Merci

  2. #2
    Membre habitué Avatar de crashyear
    Homme Profil pro
    Responsable d’exploitation informatique
    Inscrit en
    Janvier 2006
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Responsable d’exploitation informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2006
    Messages : 267
    Points : 176
    Points
    176
    Par défaut
    Tu n'as qu'à faire une fonction qui te permette de doubler ces caractères là.
    exemple :
    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
     
    function ParserDblApo($texte)
    {
        $tab=explode('\'', $texte);
    	if($texte==$tab[0])
    	{
    		$newtexte=$texte;
    	}
    	else
    	{
    		$newtexte=$tab[0];
    		for($i=1; $i<count($tab); $i++)
    		{
    			$newtexte=$newtexte."''".$tab[$i];
    		}		
    	}
        return $newtexte;
    }
    et
    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
     
    function ParserDblGui($texte)
    {
        $tab=explode('"', $texte);
    	if($texte==$tab[0])
    	{
    		$newtexte=$texte;
    	}
    	else
    	{
    		$newtexte=$tab[0];
    		for($i=1; $i<count($tab); $i++)
    		{
    			$newtexte=$newtexte."''".$tab[$i];
    		}		
    	}
        return $newtexte;
    }
    J'espère que ca pourra t'aider.
    -> N'oubliez pas de mettre résolu
    http://collinalexis.free.fr

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Points : 21
    Points
    21
    Par défaut
    Je ne comprends pas bien l'intéret de doubler les caractères mais c'est peut être que je me suis mal expliqué.

    En fait voilà comment jaffiche la value d'un input

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'value= " '.$_POST['dim_lib'].' " ';
    Le problème c'est que si $_POST['dim_lib'] contient du texte avec un apostrophe et bien celui ne s'affichera pas

    Si j'inverse l'ordre des quotes dans le code c'est à dire comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "value= ' ".$_POST['dim_lib']." ' ";
    Ce sont les guillemets qui ne s'afficheront pas si la chaine contenue dans $_POST['dim_lib'] en est pourvu.

  4. #4
    Membre averti Avatar de Joe Le Mort
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 392
    Points : 388
    Points
    388
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'value= '.$_POST['dim_lib'];
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "value= ".$_POST['dim_lib'];
    Tuxboard Blog d'actu Buzz...
    Video de sport

  5. #5
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    Citation Envoyé par Joe Le Mort
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'value= '.$_POST['dim_lib'];
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "value= ".$_POST['dim_lib'];
    NON !

    ca va generer qqchose comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input value=c'est ma valeur>
    ce qui est incorrect.
    par contre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input value="c'est ma valeur">
    est correct
    ainsi que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input value="ceci est ma \"valeur\"">
    donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $var = 'ceci est ma "valeur"';
    echo '<input value="'.addslashes($var).'">";

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Points : 21
    Points
    21
    Par défaut
    Merci de ta réponse mais ca ne fonctionne toujours même si ya du mieux :
    voilà ce que j'ai fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<input class="larger" type="text" name="pro_lib" value="'.addslashes($produit->pro_libelle).'" />';
    Le libellé issu de ma BDD est : TAPIS "MAI FUNG" PONEY

    Voilà le code HTML généré :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input class="larger" type="text" name="pro_lib" value="TAPIS \"MAI FUNG\" PONEY" />
    Ce qui me donne dans mon input : TAPIS \

    Je ne vois vraiment pas et c'est très chiant ce genre de ptit bug ca fait geuler les utilisateurs

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Points : 362
    Points
    362
    Par défaut
    A ce momment la faut que tu cree ta propre fonction addslashes.

    As tu essayé la derniere solution sans le addslashes pour voir ce que ca donne.

  8. #8
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    oouupppss !!

    au temps pour moi, c'est pas ca qu'il fallait faire ;o)

    Il faut générer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input value="ceci est ma &quot;valeur&quot;">
    donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $var = 'ceci est ma "valeur"'; 
    echo '<input value="'.htmlentities($var, ENT_QUOTES).'">";

  9. #9
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Points : 21
    Points
    21
    Par défaut
    ah yes !! Merci beaucoup Fladnag, tu m'enlèves une belle épine du pied !

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

Discussions similaires

  1. Afficher une image dans une input
    Par bubulemaster dans le forum Mise en page CSS
    Réponses: 10
    Dernier message: 06/12/2007, 12h24
  2. [SQL] Le résultat de la requête est tronqué lorsqu'on l'affiche dans un input text
    Par JackBeauregard dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/01/2007, 19h51
  3. Double Quote dans un input
    Par ythim dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 03/07/2006, 12h28
  4. récuperer une valeur et l'afficher dans un input
    Par popy29 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/12/2005, 17h49
  5. Afficher un varchar complet dans un input text
    Par PrinceMaster77 dans le forum ASP
    Réponses: 4
    Dernier message: 25/06/2004, 13h17

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