Livesearch valg
Hej Eksperter.Jeg har fået lavet mig en livesearch. Det virker rigtig fint med at finde mulighederne i livesearch. Da jeg skal bruge det i en søgeform, kunne jeg godt tænke mig, at man kunne klikke på den mulighed, der var bedst, så tekstboksen blev udfyldt med det navn. Er det muligt?
Jeg har gengivet min kode nedenfor.
index.php
<html>
<head>
<script type="text/javascript">
function showResult(str)
{
if (str.length==0)
{
document.getElementById("livesearch").innerHTML="";
document.getElementById("livesearch").style.border="0px";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("livesearch").innerHTML=xmlhttp.responseText;
document.getElementById("livesearch").style.border="1px solid #A5ACB2";
}
}
xmlhttp.open("GET","getUser.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
<form>
<input type="text" size="30" onkeyup="showResult(this.value)" />
<input type=">
<div id="livesearch"></div>
</form>
</body>
</html>
getUser.php
<?php
$q=$_GET["q"];
require_once('config.php'); // henter konstanter til PDO connection
$dbh = new PDO(FIRSTATT_PDO, DB_USER, DB_PASS);
$sql="SELECT * FROM users WHERE CONCAT(firstName, ' ', lastName) LIKE '%".$q."%'";
$result = $dbh->query($sql);
while($row = $result->fetch(PDO::FETCH_ASSOC))
{
echo "<div>" . $row['firstName'] . " " . $row['lastName'] . "</div>";
}
?>