Probeer deze js-code in plaats van wat je hebt. Ik heb de vertragingsfunctie toegevoegd, zodat het script een bepaalde tijd wacht nadat de gebruiker stopt met typen voordat het verzoek wordt verzonden. Dit voorkomt dat een groot aantal verzoeken naar de server wordt gestuurd.
<script type="text/javascript">
var delay = (function() {
var timer = 0;
return function(callback, ms){
clearTimeout (timer);
timer = setTimeout(callback, ms);
};
})();
$("#search-box").keyup(
function () {
delay(function () {
var keyword = $("#search-box").val();
var URL = encodeURI("search.php?q=" + keyword);
$.ajax({
url: URL,
cache: false,
type: "GET",
success: function(response) {
$("#results").html(response);
}
});
}, 500);
}
);
</script>