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 :

Autocompletion et apostrophe


Sujet :

JavaScript

  1. #1
    Membre averti
    Inscrit en
    Novembre 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 17
    Par défaut Autocompletion et apostrophe
    Bonjour,

    J'ai un problème avec un script d'autocompletion pour la gestion des apostrophes dans la requête, lorsque je tape ' une erreur se produit et si la valeur recherchée contient un apostrophe la requête n'est pas effectuée.

    Voici comment je rentre ma variable dans ma base :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $detailProb = addslashes($detailProb);
    Et voilà comment je l'exploite :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    if(isset($_POST['queryString']))                 // si une recherche est lancée
            {
                $queryString = $_POST['queryString'];  // on récupère les paramètres de la recherche
     
                if(strlen($queryString) >= 2)                 // si il y a 2 lettres ou plus de frappées
                {
                                                            // on execute la requete
                    $query = $db->sql_query("SELECT descProb FROM probleme WHERE descProb LIKE '%$queryString%' ORDER BY descProb"); 
     
     
     
                    if($query)                                 // si la requête s'est bien déroulée
                    {
                        while ($result = $db ->sql_fetchrow($query)) 
                        {
      // on affiche les résultats de la requête, et on soumet le formulaire lors du clic sur une ligne
     
                            echo '<li onClick="fill2(\''.$result[descProb].'\');document.getElementById(\'formRech2\').submit();">'.$result[descProb].'</li>';
     
     
                           }
                    } 
                    else                                     
                    {
                                                            // si la requête n'a pas fonctionnée, on affiche un message d'erreur
                        echo 'Erreur : Il y a eu un probleme avec la requete.'; 
                    }
                } 
                else                                          // si il y a moins de 2 touches de frappées, on ne fait rien
                {
                } 
            } 
            else 
            {
                echo 'Erreur';                                // si la recherche n'a pu être récupérée, on affiche un message d'erreur
            }
        }
    Comment puis je gérer ce maudit apostrophe ?

    Merci d'avance pour votre aide.

  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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    addslashes coté php ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre averti
    Inscrit en
    Novembre 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 17
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    addslashes coté php ?
    Oui, c'est ce qui pose problème je suppose, comment doit je formater ma variable ? J'ai aussi essayé avec mysql_real_escape_string mais le résultat est le même.. Ma variable est bien integrée dans ma base SQL avec l'apostrophe, je la vois bien dans mon menu d'autocompletion lors de la recherche mais lorsque je clique dessus dans mon menu d'autocompletion elle n'est pas renvoyée dans mon champ input
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="search" name="recherche" size="40" value=""  id="inputString2" onKeyUp="lookup2(this.value);" onBlur="fill2();" />

  4. #4
    Membre éclairé Avatar de Billy KiT
    Inscrit en
    Mars 2011
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 66
    Par défaut
    Le résultat HTML semble être le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <li onClick="fill2('j'ai');document.getElementById('formRech2').submit();">j'ai</li>'
    Le mot s'affiche mais le javascript contient une erreur.
    If faut essayer de "slasher" seulement l'apostrophe dans le onclick.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '<li onClick="fill2(\''.str_replace("'","\'",$result[descProb]).'\');document.getElementById(\'formRech2\').submit();">'.$result[descProb].'</li>';

  5. #5
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 416
    Par défaut
    Côté php il faut toujours utiliser mysql_real_escape_string avec l'extension mysql (et non addslashes).

    Pour l'affichage de tes variables utilises htmlspecialchars dans le code html, mais plus spécifiquement si tu veux mettre un antislash uniquement sur des caractères choisis tu peux utiliser addcslashes

  6. #6
    Membre averti
    Inscrit en
    Novembre 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 17
    Par défaut
    Merci beaucoup pour ces infos, ça marche nickel.

  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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    conseiller de passer en ISO pour des accents ???

    regarde plutot par là http://j-willette.developpez.com/tut...-site-en-utf8/
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  8. #8
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 416
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    conseiller de passer en ISO pour des accents ???

    regarde plutot par là http://j-willette.developpez.com/tut...-site-en-utf8/
    ???

    En quoi le fait d'utiliser htmlspecialchars pour afficher des variables dans le code html ou l'utilisation d'addcslashes pour échapper des caractères choisis, a-t-il un quelconque rapport avec le fait de "conseiller de passer en ISO pour des accents" ?
    Personne n'a parlé d'accents ou d'encodage dans ce topic, et par ailleurs htmlspecialchars ne traite pas les caractères accentués...

  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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    en effet ...
    c'est manifestement un gros trompage de post ...
    maintenant faut que je retrouve l'autre ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

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

Discussions similaires

  1. [Dbgrid] Picklist & Autocomplete ?
    Par dudux dans le forum Bases de données
    Réponses: 7
    Dernier message: 11/07/2004, 10h32
  2. Réponses: 3
    Dernier message: 10/06/2004, 22h34
  3. Apres l'accent l'apostrophe
    Par man80 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 04/05/2004, 16h47
  4. Stocker un apostrophe
    Par Bowen dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/03/2004, 00h00
  5. Problème avec les apostrophes
    Par misterbillyboy dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/07/2003, 16h39

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