【发布时间】:2015-05-26 21:55:25
【问题描述】:
我正在尝试进行自动完成搜索,即从输入中的字符串中搜索,在我的数据库中从几个表(例如 Persons、Users 和 Bands)中进行搜索。使用 Laravel 4.2。
然后,我希望在我已经位于的视图的#div 中访问和更新三个对象。
我尝试了很多,但这一次很难。我的解决方案在本地主机上工作,但不是在线,但无论如何它都是一个糟糕的解决方案,通过传递带有->(对象)的视图。已发送标头,在线失败。
我认为我的解决方案应该是这样的:
查看:
{{ Form::open(['action' => ['SearchController@search'], 'method' => 'post']) }}
{{ Form::text('term', '', ['class' => 'uk-width-1-1', 'id' => 'term', 'placeholder' => 'Søk etter person'])}}
{{ Form::close() }}
控制器:
public function search(){
$term = Input::get('term');
$fest = Session::get('festival');
$festival = Festival::find($fest);
$persons = DB::table('fs_persons')
->join('fs_festival_persons', 'person_id','=','fs_persons.id')
->where('festival_id', '=', $fest)
->get();
foreach ($persons as $query)
{
if ((strpos(strtolower($query->firstname), strtolower($term)) !== false) OR ((strpos(strtolower($query->lastname), strtolower($term)) !== false))) {
$results[] = [ 'id' => $query->id, 'value' => $query->firstname.' '.$query->lastname, 'tlf' => $query->tlf ];
}
}
return Response::json($results);
}
但我不确定如何正确使用它,这里只是一个对象,尝试用对象创建一个多级数组,但这对我来说非常混乱。这是来自 jquery 自动完成的一点点代码,我得到了它的工作,但我想要我自己的搜索结果呈现。
我希望能够在一个视图中更新搜索输入上的 keyup,以及我可以在哪里使用刀片模板:
@if($persons)
@if(sizeof($persons)>0)
<div class="uk-width-small-4-4">
Personar:
</div>
<div class="uk-width-small-4-4">
@foreach($persons as $person)
<?php
$tmp_pers = Person::find($person->id);
?>
<span class="search_name">
<a href='{{ URL::to("festival/$festivalen->slug/person/$person->id") }}'>
{{ $person->firstname }} {{ $person->lastname }}
</a>
</span>
</div>
@endforeach
@endif
@endif
但我不确定如何从 json 中获取\retrieve 变量,这一切都比我预期的要困难得多,所以希望有人能指导我,谢谢!
【问题讨论】:
标签: php jquery laravel laravel-4 autocomplete