【发布时间】:2014-07-25 22:37:49
【问题描述】:
所以最近我使用 Devbridge 的 jQuery Autocomplete 制作了一个带有自动完成功能的 laravel 项目。我试图从数据库中获取建议,但没有显示任何内容。
Google Chrome 控制台显示“SyntaxError: Unexpected Token
两个错误都指向函数 Autocomplete() 的最后一行
transformResult: function (response) {
return typeof response === 'string' ? $.parseJSON(response) : response;
}
这是我在 Bladeview 中输入的文本(transaksi/add):
{{Form::open(array('action' => 'TransactionController@store', 'role' => 'form'))}}
<div class="box-body">
<div class="form-group">
{{Form::hidden('kode_acc')}}
{{Form::label('kode', 'Kode Account') }}
{{Form::text('kode', '', array('class' => 'form-control', 'id' => 'kode'))}}
</div>
///some other inputs
{{ Form::close() }}
路线:
//route autocomplete kode account
Route::get('transaksi/getAccountsAutocomplete',array('uses'=>'AccountController@getAccountsAutocomplete'));
控制器
public function getAccountsAutocomplete(){
$term = Input::get('kode');
$suggestions = array();
$search = DB::query("SELECT *
FROM `accounts`
WHERE `nama` LIKE '%".$term."%')";
foreach($search as $results => $account){
$suggestions[] = array('id'=>$account->id,
'nama'=>$account->nama,
'value'=>$account->id);
}
return Response::json($suggestions);
}
jQuery 脚本
$(function(){
$('#kode').autocomplete({
source: function (request, response) {
$.ajax({
url: "{{URL('/getAccountsAutocomplete')}}",
data: {
kode: request.term
},
success: function (data) {
console.log("[SUCCESS] " + data.length + " item(s)");
response(data);
},
});
},
select: function(event, ui){
$('#kode_acc').val(ui.item.id);
}
});
});
-- 更新--
附加信息
从 Chrome 网络,我刚刚发现查询转到
transaksi/add?query=
什么时候应该去
transaksi/getAccountsAutocomplete
到达控制器。
我对 jQuery 和 Laravel 还是很陌生。对这个问题有什么帮助吗?谢谢。
【问题讨论】:
标签: jquery json jquery-ui laravel autocomplete