我正在使用旧的 typeahead 0.9.3 并从文本输入(id:search_accused)调用 typeahead jquery 函数,如下所示
$('#search_accused').typeahead([
{
name: 'search_accused',
valuekey: 'name',
header: 'NAME',
limit: 5,
remote: 'suggestaccused.php?query=%QUERY',
template: '{{name}}',
engine: Hogan
}
]).on('typeahead:selected',function(event,datum){
alert(datum.name);
});
suggestaccused.php代码是
while ($row = mysqli_fetch_assoc($result)) {
$array['name'] = $row['name'];
$array['photo'] = $row['photo'];
array_push($accused, $array);
}
echo json_encode ($accused);
我收到以下错误:
使用未定义的常量名称 - 假定为“名称”
我认为这是因为使用了 {{}},因为当我使用 template: '{name}' 或任何其他 template: 值时,alert() 会在从下拉列表中选择时打印所需的名称,但不会给出错误但也没有输出正确的值。
我正确地假设是 {{}} 给出了错误。这是因为 Laravel 的 Blade 认为它是一个 php 表达式。在 {{}} 之前添加 @ 告诉 Blade 它是 Javascript。所以我改变了
template: '{{name}}',
到
template: '@{{name}}',
而且效果很好。