Formulaire dymanique - text + select - lien avec base de données

Résolu
Quedza Messages postés 289 Statut Membre -  
Quedza Messages postés 289 Statut Membre -
Bonjour les enfants,

Je voudrais afficher un input dynamique dans mon formulaire.

Je voudrais en effet faire un input "pour fainéants" lié à la base de donnée, afin qu'à chaque frappe, les propositions issues de la base de données changent.

Exemple
Saisie 1: Fr
Propositions : Frère, Frileux, Froid, France, Frappe, Fraternité
Saisie 2: Fra
Propositions : France, Frappe, Fraternité
Saisie 3 : Frap
Propositions : Frappe

Ce que je voudrais faire est utilisé dans...
...le moteur de recherche Google :
<input id="gbqfq" class="gbqfif" type="text" value="" autocomplete="off" name="q" style="border: medium none; padding: 0px; margin: 0px; height: auto...; width: 100%; background: url('" dir="ltr" spellcheck="false"></input>
...le moteur de recherche de Wikipédia :
<input id="searchInput" type="search" accesskey="f" title="Rechercher dans Wikipédia [alt-shift-f]" placeholder="Rechercher" name="search" tabindex="1" autocomplete="off"></input>

J'ai une base de données et je reconnais, mais aucune idée de la façon de faire pour utiliser cet input dans ma page web et lier l'input à la base de données.
Je devine cependant que puisqu'à chaque frappe, il faudrait réinterroger la base de données, il y a une façon plus judicieuse d'afficher les propositions, qui économise la consultation de la base.

Un grand merci d'avance.

3 réponses

  1. Quedza Messages postés 289 Statut Membre 18
     
    Ça marche ! Merci ! Je ne suis pas assez à l'aise dans JavaScript.
    1
  2. Utilisateur anonyme
     
    Bonjour,

    Un peu de JS serait utile dans ce cas là ...
    Avec un onkeyup="demanderListe(this.value)" sur ton input de recherche ...

    Fonction JS

    function demanderListe(recherche)
    {
    if (recherche.length > 2)
    {
    $.ajax({
    type: "POST",
    url: "recherche.php",
    data: "recherche="+recherche,
    success: function(data)
    {
    $("#liste").css("display", "inline"); // j'affiche la div Resultats
    $("#liste").append(data); // j'y met mes résultats
    }
    });
    }

    }

    Et ma page de traitement (recherche.php)

    session_start();
    require_once("inc/tools.php");

    $db = new db();

    $users = $db->getUsers();
    $html_friends = "";
    $data = array();

    foreach($users as $user)
    {
    if(stripos($user->login, $_POST['recherche']) === 0)
    {
    $data[] = $user->login;
    $html_friends .= getFriendHtml($user);
    }
    }

    echo ($html_friends);

    A savoir, j'ai pris un code que j'avais mis en place. A toi de le modifier à ta guise ;)

    Bon courage !

    Popo79pr

    « L'avenir appartient à ceux qui se lèvent tôt »
    0
  3. Quedza Messages postés 289 Statut Membre 18
     
    Merci Popo79pr ! Je vais m'empresser de te piquer le code...
    0