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

Résolu/Fermé
Quedza Messages postés 243 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 21 janvier 2022 - Modifié par Quedza le 16/02/2014 à 17:35
Quedza Messages postés 243 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 21 janvier 2022 - 27 févr. 2014 à 20:16
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.

A voir également:

3 réponses

Quedza Messages postés 243 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 21 janvier 2022 18
Modifié par Quedza le 27/02/2014 à 20:19
Ça marche ! Merci ! Je ne suis pas assez à l'aise dans JavaScript.
1
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
Quedza Messages postés 243 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 21 janvier 2022 18
27 févr. 2014 à 20:08
Merci Popo79pr ! Je vais m'empresser de te piquer le code...
0