Scusate per il doppio post, ma vi riporto i codici javascript e jquery d'esempio (ho qualche problema con lo stile css).
getRicerca.php
Codice PHP:
<?php
if(!empty($_GET['q']) == True) {
$name = "{$_GET['q']}";
$hint ="<span onclick=\"prova(this.innerHTML)\">${name}</span>";
echo "${hint}";
}
?>
ho tolto il br e gli spazi prima e dopo $name.
javascript.html
Codice HTML:
<!DOCTYPE html>
<html>
<head>
<script>
var n = 0;
function showHint(str) {
x = document.getElementById("txtHint");
if (str.length > 5) {
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
x.innerHTML = this.responseText;
x.style.border="1px solid #A5ACB2";
x.style.width="240px";
}
};
xmlhttp.open("GET", "getRicerca.php?q=" + str, true);
xmlhttp.send();
}
n = 1;
}
function prova(testo) {
document.getElementById("ricerca").value = testo;
x.innerHTML = "";
n = 2;
}
if (n != 1) {
x.style.border="0px";
}
</script>
</head>
<body>
<p><b>Start typing a name in the input field below:</b></p>
<form>
First name:<br>
<input type="text" id="ricerca" size="30" onkeyup="showHint(this.value)">
<input type="button" value="Conferma">
<div id="txtHint"></div>
</form>
</body>
</html>
jquery.html
Codice HTML:
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-3.1.1.js"></script>
<script>
var n = 0;
function showHint(str) {
x = $("#txtHint");
if (str.length > 5) {
$.ajax({
url: "getRicerca.php",
data: "q=" + str,
cache: false,
success: function( msg ) {
x.html( msg );
x.css({"borderLeft" : "1px solid #A5ACB2", " width" : "240px" });
n = 1;
}
});
}
}
function prova(testo) {
$("#ricerca").val(testo);
x.html("");
n = 2;
}
if (n != 1) {
x.css("borderLeft", "0px");
}
</script>
</head>
<body>
<p><b>Start typing a name in the input field below:</b></p>
<form>
First name:<br>
<input type="text" id="ricerca" size="30" onkeyup="showHint(this.value)">
<input type="button" value="Conferma">
<div id="txtHint"></div>
</form>
</body>
</html>
Gli eventi sono già inseriti nel markup ("onkeyup" e "onclick").
Spero d'avere fatto una cosa gradita.