Bien le bonjour. Je viens vous voir aujourd'hui car j'ai un petit soucis de compréhension avec un code que je n'arrive pas très bien a cerner. Le but atteint est d'afficher a la suite d'une saisie, une liste de nom de personne insérer dans un tableau javascript qui provient d'une base de donnée SQL. Mon tableau est couper en 2 parties. Une où se trouve l'ID de la personne et l'autre où se situe le Nom est le Prénom de cette dernière.Comment procéder avec le code suivant ?
Code de ma page index.php :
<div onkeydown="return moveSelection()">
<input type="text" id="champ" onkeyup="window.setTimeout('refreshList();', 10); return getEnterKey()" />
<div id="liste" style="width: 160px;border: solid 1px black;overflow: auto;display: none;"></div>
</div>
Code de ma page procedure_jsp.php :
function fillInput(i)
{
document.getElementById('champ').value = myArray[i][1];
document.getElementById('liste').style.display= 'none';
document.getElementById('champ').focus();
}
function refreshList()
{
if(document.getElementById('champ').value != old)
{
old=document.getElementById('champ').value;
document.getElementById('liste').innerHTML = '';
if (document.getElementById('champ').value.length > 0)
{
nbMatch = 0;
content='';
for (var j=0; j < myArray[].length; j++)
{
if (myArray[j][1].slice(0, document.getElementById('champ').value.length).toUpperCase() == document.getElementById('champ').value.toUpperCase())
{
nbMatch++;
content += '<div id="' + nbMatch + '" class="result" onclick="fillInput(' + i + ')">' + myArray[j][1] + '</div>';
}
}
if (nbMatch)
{
document.getElementById('liste').innerHTML = content;
document.getElementById('liste').style.height = (Math.min(5, nbMatch)) + 'em';
document.getElementById('liste').style.display = 'block';
selIndex=0;
}
else
document.getElementById('liste').style.display = 'none';
}
else
{
document.getElementById('liste').style.display = 'none';
}
}
}
function moveSelection()
{
if (event.keyCode == 40)
{
if (selIndex > 0 && selIndex < nbMatch)
{
document.getElementById(selIndex).style.backgroundColor = 'white';
document.getElementById(selIndex).style.color = 'black';
}
if (selIndex < nbMatch)
{
selIndex++;
document.getElementById(selIndex).style.backgroundColor = 'darkblue';
document.getElementById(selIndex).style.color = 'white';
document.getElementById(selIndex).focus();
}
return false;
}
else if (event.keyCode == 38)
{
if (selIndex > 1)
{
document.getElementById(selIndex).style.backgroundColor = 'white';
document.getElementById(selIndex).style.color = 'black';
}
if (selIndex > 1 && selIndex <= nbMatch)
{
selIndex--;
document.getElementById(selIndex).style.backgroundColor = 'darkblue';
document.getElementById(selIndex).style.color = 'white';
}
return false;
}
return getEnterKey();
}
function getEnterKey()
{
if (event.keyCode == 13)
{
if (selIndex > 0)
{
document.getElementById('champ').value = document.getElementById(selIndex).innerText;
document.getElementById('liste').style.display = 'none';
old=document.getElementById(selIndex).innerText
}
return false;
}
else
{
return true;
}
}
Mon tableau est bien transmit a ma fonction JSP mais elle ne sort aucun résultat. Cette fonction marche très bien lorsque le tableau n'a qu'une seule valeur. ICI dans la fonction JSP j'ai voulu changer myArray[i] par myArray[i][1] mais rien a faire.
Quelqu'un aura-t-il l'émabiliter de bien vouloir m'aider ? merci beaucoup.