Hej!
Har hittat ett litet och effektivt autosuggest med integrering till PHP på följande länk;
http://woork.blogspot.com/2008/03/php-components-autosuggest.html
Allt funkar tipp topp efter lite korrigeringar så att den söker på flera kolumner i databasen osv. Men problemet är att när rätt sökresultat dyker upp nedan som ett förslag, så ska man ju självklart kunna klicka på denna så att autosuggest scriptet fulländar texten utan att man behöver fylla i allt.
Det verkar nämligen inte fungera som det ska. Följande är min databas kod (som är det enda jag har modifierat):
<?php
include('config.php');
$searchq = strip_tags($_GET['q']);
$getRecord_sql = '
SELECT player.firstname AS player_fname, player.lastname AS player_lname
FROM player
WHERE (player.firstname LIKE "'.$searchq.'%" OR player.lastname LIKE "'.$searchq.'%")
';
$getRecord = mysql_query($getRecord_sql);
if(strlen($searchq)>0){
echo '<ul>';
while ($row = mysql_fetch_array($getRecord)) {
echo ("<li><a href=\"#\">".$row['player_fname']." ".$row['player_lname']."</a></li>");
}
echo '</ul>';
}
?>
Och så här ser JS/XML koden ut (EJ redigerad):
/* ---------------------------- */
/* XMLHTTPRequest Enable */
/* ---------------------------- */
function createObject() {
var request_type;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
request_type = new ActiveXObject("Microsoft.XMLHTTP");
}else{
request_type = new XMLHttpRequest();
}
return request_type;
}
var http = createObject();
/* -------------------------- */
/* SEARCH */
/* -------------------------- */
function autosuggest() {
q = document.getElementById('search-q').value;
// Set te random number to add to URL request
nocache = Math.random();
http.open('get', 'lib/search.php?q='+q+'&nocache = '+nocache);
http.onreadystatechange = autosuggestReply;
http.send(null);
}
function autosuggestReply() {
if(http.readyState == 4){
var response = http.responseText;
e = document.getElementById('results');
if(response!=""){
e.innerHTML=response;
e.style.display="block";
} else {
e.style.display="none";
}
}
}
Vad är det jag missar? Är ingen hacker på javascrpit/xml/ajax, så hjälp behövs verkligen! Kan tillägga att form taggen ser ut på följande sätt:
<input name="search-q" id="search-q" type="text" onkeyup="javascript:autosuggest()"/>
Tacksam för all hjäpl!