Voici un code qui pourrait t'aider.
mais mon problème c'est qu'il sélectionne automatiquement le mot commençant par les lettres que tu saisis et ce à chaque fois que tu saisies une lettre supplémentaire du mot que tu recherches.
Moi j'ai besoin d'un code de ce genre mais sans la sélection. Pour être plus claire, j'ai besoin de saisir les premières lettres d'un mot et la liste multiple doit se positionner sur le premier mot qui commence par les lettres saisies mais sans le sélectionner.
Si qq1 peut m'aider à améliorer mon code pour qu'il réponde à mes besoins ça m'arrangerait.
Merci
Voici le code source :
<html>
<head> <title> recherche rapide en tapant qq lettre d'une chaine se trouvant dans une liste multiple sans recharger la page</title> </head>
<script language="javascript">
/*
* fonction qui cherche un texte dans un tableau
* @return true si le texte est trouvé
* @return false sinon
* @param texte : le texte a chercher
* @param tab1 : le tableau dans lequel on recherche le texte
*
*/
function searchTexteDansTab(tab1,texte)
{
maListe = (document.getElementsByName('candidat[]'))[0]; //le champ select qui nous interesse
trouve = 0; i = 0;
while (i<tab1.length && !trouve) //tant qu'on a pas trouvé et que le parcours du tableau n'est pas fini
{
if(texte!="")
{
var aux=new RegExp ("^"+texte,"i");
if(tab1[i].match(aux))
{
//alert(tab1[i].match(aux)+"___"+texte);
//il faut mettre en subrillance cette entrée dans le champ select du formulaire
var aux2 = i; //alert(aux2);
maListe.options[aux2].selected=true;
trouve=1;
}
}
i++;
}
}
</script>
<body>
<?php
require('../configuration.php');
$link=connexion();
?>
<form name="form1" action="searchListeMultipleSansRecharger.php" method="POST">
<h2><u> Rattachement du candidat sélectionné pour cette mission </u> </h2>
<input type="text" onKeyUp="searchTexteDansTab(nomCandidat,this.value)"> <br>
<?php
$chaine = "select c.nom,c.prenom,c.id,f.intitule from candidat as c,formation as f where c.idformation=f.id order by nom asc ";
$req = requeteConsultation($chaine,$link); $nb = mysql_num_rows($req);
echo "<select name='candidat[]' size = '15' multiple> </option>";
for($i=0;$i<$nb;$i++)
{
$nom = mysql_result($req,$i,0); $prenom = mysql_result($req,$i,1); $idCandidat = mysql_result($req,$i,2);$formation = mysql_result($req,$i,3);
$nomCandiat[]=$nom; // on remplit le tableau pour faire une rechercher rapide à l'aide des qq 1ères lettres du nom
echo "<option value='".$idCandidat."' ";
if( !empty($_POST['candidat']) && ($_POST["candidat"] == $idCandidat) ) {echo "SELECTED";}
echo ">".$nom."_".$prenom."__".$formation."</option>";
}// boucle sur tous les candidats de la base
echo "</select> ";
//transformation variable php en Javascript
$nomCandidat_js = isset($nomCandiat)? php2js($nomCandiat):"''";
?>
<script language="JavaScript">
var nomCandidat = <?php echo $nomCandidat_js; ?>;
</script>
</form>
</body>
</html>