Hi,
ich habe mittels jQuery und ajax eine Autovervollständigung in die Suche eingebaut.
Mein Javascript:
var obj = $('#searchParam').autocomplete({
autoFocus: false,
minLength: 4,
source: function( request, response ) {
$.ajax({
url: 'http://meineshopadresse.de/index.php?cl=my_ajax_cl',
dataType: "json",
contentType: "application/x-www-form-urlencoded; charset=utf-8",
data: {
name_startsWith: request.term,
type: 'search'
},
success: function( data ) {
response( $.map( data, function( item ) {
return {
label: item.label,
value: item.value,
url: item.url
}
}));
}
});
},
select: function( event, ui ) {
if (ui.item.url) {
window.location.href = ui.item.url;
}
}
}).data("ui-autocomplete");
obj && (obj._renderItem = function (ul, item) {
//Add the .ui-state-disabled class and don't wrap in <a> if value is empty
if(item.value ==''){
return $('<li class="ui-state-disabled">'+item.label+'</li>').appendTo(ul);
}else{
return $("<li>")
.append("<a>" + item.label + "</a>")
.appendTo(ul);
}
});
Mein passender Controller sieht gekürzt so aus
(es wurden nur die Datenbank abfragen weggekürzt):
<?php
class my_ajax_cl extends oxubase
{
public function render()
{
parent::render();
/* Teil der Datenbankabfrage weggekürzt aus Platzgründen
$result ist ein Array welches das Ergebniss der Datenbankabfragen enthält. */
if(empty($results)) {
$results = Array();
$this->renderJson($results);
} else {
$this->renderJson($results);
}
}
}
function renderJson($json) {
ini_set('display_errors', 0);
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
header("Cache-Control: no-cache, must-revalidate" );
header("Pragma: no-cache" );
header("Content-type: text/json");
echo json_encode($json);
return null;
}
}
?>
Das ganze funktioniert auch soweit. Er zeigt mir Ergebnisse an.
Leider spuckt er mir im php.log folgenden Fehler aus:
[B]PHP Warning: Smarty error: unable to read resource: “” in /srv/www/htdocs/core/smarty/Smarty.class.php on line 1093[/B]
Wie kann ich diesen "Fehler beheben? Habe dazu leider nichts in google gefunden und auch nicht im Forum.