[code]
<html>
<head>
<title></title>
<?
include '../connexion.php'; //Ajout de la connexion à la base de données
?>
<script type="text/javascript">
<!-- Debut
function initialisation()
{
lettre = new NomObjets('formulaire','liste','entree');
lettre.bldInitial();
}
/*
Dans cette fonction, on crée avec l'opérateur spécial new un objet lettre en lui définissant la fonction NomObjets . Cet objet contient le nom de notre formulaire (ici formulaire), le nom de notre liste déroulante (ici liste) et le nom du champ texte (ici entrée).
Une fois ceci fait on execute la fonction bldInitial() en lui concatenant l'objet créé
*/
function NomObjets(formname,selname,textname,str)
{
this.formname = formname;
this.selname = selname;
this.textname = textname;
this.select_str = str || '';
this.selectArr = new Array();
this.initialize = initialize;
this.bldInitial = bldInitial;
this.maj = maj;
}
function initialize()
{
if (this.select_str =='')
// Si la variable select_str est vide, en gros si il n'y a rien de sélectionné
{
for(var i=0;i<document.forms[this.formname][this.selname].options.length;i++)
/*
On ouvre une boucle avec l'instruction for jusqu'à que i soit inférieur au nombre de valeur "<option>" restantes. Ceci est effectué en utilisant la propriété length associée à la propriété options de l'objet select (retourne un tableau correspondant aux options (élément <OPTION>)). Gardez bien en mémoire cette syntaxe car elle est réutilisée un peu partout plus bas.
*/
{
this.selectArr[i] = document.forms[this.formname][this.selname].options[i];
this.select_str += document.forms[this.formname][this.selname].options[i].value+" : "+document.forms[this.formname][this.selname].options[i].text+",";
}
}
else
{
var tempArr = this.select_str.split(',');
for(var i=0;i<tempArr.length;i++)
{
var prop = tempArr[i].split(':');
this.selectArr[i] = new Option(prop[1],prop[0]);
}
}
return;
}
function bldInitial()
{
this.initialize();
/* Au commencement de cette fonction, on exécute la fonction initialize().*/
for(var i=0;i<this.selectArr.length;i++)
/* On ouvre une boucle jusqu'à que i soit inférieur au nombre d'éléments du tableau selectArr.*/
document.forms[this.formname][this.selname].options[i] = this.selectArr[i];
/* On réécrit nos "<option>" avec ce que contient le tableau selectArr.*/
document.forms[this.formname][this.selname].options.length = this.selectArr.length;
/* et on donne autant d'option que contient notre tableau selectArr.*/
return;
// puis on renvoie le tout
}
function maj()
{
var str = document.forms[this.formname][this.textname].value;
// On donne a la variable str la valeur du champ texte.
if(str == '') { this.bldInitial();return; }
// si la variable str est vide, on execute la fonction bldInitial()
this.initialize();
// on execute la fonction initialize()
var j = 0;
// on ouvre une variable j et on y met 0
pattern1 = new RegExp("^"+str,"i");
for(var i=0;i<this.selectArr.length;i++)
if(pattern1.test(this.selectArr[i].text))
document.forms[this.formname][this.selname].options[j++] = this.selectArr[i];
document.forms[this.formname][this.selname].options.length = j;
{
document.forms[this.formname][this.selname].options[0].selected = true;
}
}
// Fin -->
</script>
</head>
<body OnLoad="javascript:initialisation()">
<!-- au chargement de la page, détecté par l'événement OnLoad, on exécute la fonction initialisation(). -->
<form name="formulaire" action="#">
Entrez les premières lettres de la matiere.
<input type="text" name="entree" size="30" onKeyUp="javascript:lettre.maj();">
<select name="liste" size=3>
<?
//Requete pour remplir la liste déroulante
$SQL = "SELECT * FROM MATIERE ORDER BY Desing_Mat";
$res = mysql_query($SQL);
while($val=mysql_fetch_array($res)) {
$valeur = $val["Desing_Mat"];
echo "<option value>".$valeur;
}
//----------------------------------------
?>
</option>
</select>
</form>
</body>
</html>
[/code]
base de donnée : table MATIERE
Ref_Mat:medint (PK)
TYPE_MAT_Nro_Type_Mat:Int (FK)
Desing_Mat:vachar
Pu_Mat:Decimal(6,2)
...
la connexion a la base de donnée se passe bien
To be awe ... It's The Life ! ;)