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 :

surligner un mot dans les réponses


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 37
    Points : 21
    Points
    21
    Par défaut surligner un mot dans les réponses
    Je reprends ci-dessous la solution donnée à une question concernant le surlignage des réponses à l'interrogation d'une base de données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $req=mysql_query("SELECT * FROM films WHERE name LIKE '%".$_POST['search']."%' ORDER BY name");
    while($ligne=mysql_fetch_array($req))
    {
    echo "<b>Nom du Film</b> :".$name."<br/><br/>
    <b>Genres :</b>".$ligne['type']."<br/><br/><b>
    Acteurs :</b>".$ligne['acteurs']."<br/><br/><b>
    Résumé :<br/></b>".$ligne['resume']."";
    }
    Ceci marche très bien à la condition de ne pas utiliser la fonction ireplace...Voyez:
    Fatal error: Call to undefined function: str_ireplace() in /

    Mais, je souhaiterais améliorer un peu la solution proposée...
    J'ai donc recours à votre aide, car je n'ai pas encore réussi.
    Voilà ce que je voudrais arriver à faire :
    que les résultats proposés soient mis en valeur au fur et à mesure que l'on tape des lettres.
    Mon script permet de rechercher des mots en provençal dans une base de données,
    mais avec votre script ci-dessus, pour que le mot trouvé soit mis en valeur,
    il faut que la demande corresponde exactement à un mot dans la base .
    Je souhaiterais que les premières lettres suffisent...
    Je m'explique,ainsi actuellement,si la recherche porte sur troubadours il faut mettre l'intégralité du mot avec même le s du pluriel (car dans la base troubadour ne figure qu'au pluriel).
    Je voudrais qu'en tapant dès les premières lettres:
    tro* puis trou*, puis troub* puis trouba* etc;
    on ait déjà la mise en valeur dans les résultats proposés.
    Or,si l'on fait la recherche avec l'astérisque * les mots trouvés, ne sont pas surlignés dans les résultats proposés...
    Ainsi, si je tape troubadour* la réponse s'affiche bien,mais sans la mise en valeur.
    J'espère être clair dans ma question et je vous remercie d'avance pour votre aide.
    http://www.ubaye-verdon.net/provence/formthmH.php?

  2. #2
    Membre éprouvé Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Points : 1 275
    Points
    1 275
    Par défaut
    Dans ton bout de code, je ne vois rien qui surligne des mots. Tu ne fais que rechercher des films dont le nom contient un paramètre.

    Je voudrais qu'en tapant dès les premières lettres:
    tro* puis trou*, puis troub* puis trouba* etc;
    on ait déjà la mise en valeur dans les résultats proposés.
    Or,si l'on fait la recherche avec l'astérisque * les mots trouvés, ne sont pas surlignés dans les résultats proposés...
    Ainsi, si je tape troubadour* la réponse s'affiche bien,mais sans la mise en valeur.
    C'est ce que fait déjà la requête que tu as collé dans ton post au détail près que tu ne dois pas mettre d'étoile dans ton mot. Ce sont les 2 % de ta requête qui font que ton mot peut n'être qu'une partie du nom.
    Le logiciel, c'est comme le sexe, c'est meilleur quand c'est libre.

    Linus Torvalds

  3. #3
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Pour faire de l’auto complétion comme tu voudrais il te faut deux choses:
    - un plugin JavaScript capable de faire l'autocomplete à proprement parler
    - un handler php capable de trouver des occurrences proches à ce qu'on vient de taper depuis la db

    Pour l'autocomplete, je te suggère jQuery UI autocomplete et pour trouver des occurences proches en db je te suggère l'usage des index fulltext.

Discussions similaires

  1. Souligner les mots dans les documents après une recherche
    Par Watier_53 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 27/06/2008, 10h50
  2. Rechercher un mot dans les enregistrements d'une table access
    Par codial dans le forum Bases de données
    Réponses: 3
    Dernier message: 08/11/2006, 21h35
  3. [vb6] Surligner un mot dans une textbox après recherche
    Par Asdorve dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 04/07/2006, 12h26

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