C'est exactement cela....., et je peux appeler ca comment pour en fire ue rechercheDe façon claire:
Tu as une base de données avec deux champs : code et nom
Tu veux un formulaire avec un <input> pour saisir le code du champs voulu. Sachant qu'au fur et a mesure qu'on rentre le code: une liste du formulaire se met à jour automatiquement et élimine les noms qui ne vont pas.Il ne reste alors que les nom dont le code commence par les chiffres tapés.![]()
Réponse : seulement en javascript/vbscript
Essaye sur www.toutjavascript.com ça doit exister tout fait.
Le_Bébert
Code : Tout sélectionner
<SCRIPT LANGUAGE="JavaScript">
var Liste=new CreerListe("Pays", 5, 200)
Liste.Add("Afghanistan");
Liste.Add("Afrique du sud");
Liste.Add("Albanie");
Liste.Add("Algérie");
Liste.Add("Allemagne");
Liste.Add("Andorre");
Liste.Add("Angola");
Liste.Add("Antigua-et-Barbuda");
Liste.Add("Arabie");
Liste.Add("Argentine");
Liste.Add("Arménie");
Liste.Add("Australie");
Liste.Add("Autriche");
Liste.Add("Azerbaïdjan");
Liste.Add("Bahamas");
function CreerListe(nom, hauteur, largeur) {
this.nom=nom; this.hauteur=hauteur; this.largeur=largeur;
this.search="";
this.nb=0;
this.Add=AjouterItem;
this.Afficher=AfficherListe;
this.MAJ=MAJListe;
}
function AjouterItem(item) {
this[this.nb]=item
this.nb++;
}
function AfficherListe() {
if (document.layers) {
var Z="<SELECT name="+this.nom+" size="+this.hauteur+">";
} else {
var Z="<SELECT name="+this.nom+" size="+this.hauteur+" style='width:"+this.largeur+"'>";
}
for (var i=0; i<this.nb; i++) {
Z+="<OPTION value=\""+this[i]+"\">"+this[i]+"</OPTION>"
}
Z+="</SELECT>"
document.write(Z);
}
function MAJListe(txt,f) {
if (txt!=this.search) {
this.search=txt
f.elements[this.nom].options.length=0;
for (var i=0; i<this.nb; i++) {
if ( this[i].substring(0,txt.length).toUpperCase()==txt.toUpperCase() ) {
var o=new Option(this[i], this[i]);
f.elements[this.nom].options[f.elements[this.nom].options.length]=o;
}
}
if (f.elements[this.nom].options.length==1) {
f.elements[this.nom].selectedIndex=0;
}
}
}
function ListeCheck() {
Liste.MAJ(document.forms["monform"].search.value,document.forms["monform"])
if (document.layers) {
setTimeout("ListeCheck()", 1001)
} else {
setTimeout("ListeCheck()", 100)
}
}
</SCRIPT>
</HEAD>
<BODY bgcolor="#FFFFFF" text="#FAFAFF" alink="#000066" link="#000066" vlink="#000066" >
<FONT FACE="Arial" SIZE='-1' COLOR="navy">
<FORM name=monform>
<INPUT type=text name=search><BR>
<SCRIPT language=javascript>
Liste.Afficher();
ListeCheck();
</SCRIPT>
</FORM>Code : Tout sélectionner
Liste.Add("Afghanistan");
Liste.Add("Afrique du sud");
Liste.Add("Albanie");
Liste.Add("Algérie");
Liste.Add("Allemagne");
Liste.Add("Andorre");
Liste.Add("Angola");
Liste.Add("Antigua-et-Barbuda");
Liste.Add("Arabie");
Liste.Add("Argentine");
Liste.Add("Arménie");
Liste.Add("Australie");
Liste.Add("Autriche");
Liste.Add("Azerbaïdjan");
Liste.Add("Bahamas");<?
$reponse = mysql_query("SELECT code FROM description"); // Requête SQL
// On fait une boucle pour lister tout ce que contient la table :
while ($donnees = mysql_fetch_array($reponse) )
{
Liste.add("$donnees['code'];")
}
?>
Ok je sais que cela a probablement pas de sens... mais j'aimerais introduire ce genre de requête dans mon script... avez vous une idée<?
$reponse = mysql_query("SELECT * FROM description");
while ($donnees = mysql_fetch_array($reponse) )
{
Liste.Add("$donnees['code']");
}
?>
Bien sure comme je pensait ca ne fonctionne pas, mais je devais essayer
Certainement mais ???? comment, car je suis bien en accord, le titre en place ne dit par grand choses..... mais si tu partage tout ton savoir avec moi, ca me fera plaisir de me conformer au désir d'un Modo....Avertissement :
auclairp, je vais écrire en rouge, mais cela ne doit pas te traumatiser.
Ce n'est pas pour te chicaner ni te faire subir les affres de quelconques supplices.
Juste pour indiquer que le message qui suit, je l'énonce en tant que modérateur.
Modération :
À présent que tu as reçu quelques éléments de réponse,
que dirais-tu d'éditer ton message initial pour donner un titre valide à ton sujet ?
Que dirais-tu, par exemple, de "Champ auto-complété" ?
À part ça, tu es dans le bon forum.
Tu sais, je fais parfois les gros yeux et j'ai une grosse voix, mais je n'ai jamais mangé personne.
Un " ne soit pas parresseux et regarde la FAQ " ou justeOn va la refaire...éditer ton message initial pour donner un titre valide à ton sujet ?
<?
require("connec.php");
$liste = "SELECT code FROM description ORDER BY code";
$resultat = mysql_query($liste);
?>
<SCRIPT LANGUAGE="JavaScript">
var Liste=new CreerListe("Pays", 5, 200)
<?
while ($rows=mysql_fetch_array($resultat))
{
echo "Liste.Add('".$rows["code"]."');";
}
?>
function CreerListe(nom, hauteur, largeur) {
this.nom=nom; this.hauteur=hauteur; this.largeur=largeur;
this.search="";
this.nb=0;
this.Add=AjouterItem;
this.Afficher=AfficherListe;
this.MAJ=MAJListe;
}
function AjouterItem(item) {
this[this.nb]=item
this.nb++;
}
function AfficherListe() {
if (document.layers) {
var Z="<SELECT name="+this.nom+" size="+this.hauteur+">";
} else {
var Z="<SELECT name="+this.nom+" size="+this.hauteur+" style='width:"+this.largeur+"'>";
}
for (var i=0; i<this.nb; i++) {
Z+="<OPTION value=\""+this[i]+"\">"+this[i]+"</OPTION>"
}
Z+="</SELECT>"
document.write(Z);
}
function MAJListe(txt,f) {
if (txt!=this.search) {
this.search=txt
f.elements[this.nom].options.length=0;
for (var i=0; i<this.nb; i++) {
if ( this[i].substring(0,txt.length).toUpperCase()==txt.toUpperCase() ) {
var o=new Option(this[i], this[i]);
f.elements[this.nom].options[f.elements[this.nom].options.length]=o;
}
}
if (f.elements[this.nom].options.length==1) {
f.elements[this.nom].selectedIndex=0;
}
}
}
function ListeCheck() {
Liste.MAJ(document.forms["monform"].search.value,document.forms["monform"])
if (document.layers) {
setTimeout("ListeCheck()", 1001)
} else {
setTimeout("ListeCheck()", 100)
}
}
</SCRIPT>
</HEAD>
<BODY bgcolor="#FFFFFF" text="#FAFAFF" alink="#000066" link="#000066" vlink="#000066" >
<FORM name=monform>
<INPUT type=text name=search><BR>
<SCRIPT language=javascript>
Liste.Afficher();
ListeCheck();
</SCRIPT>
</FORM>
</BODY></HTML>