В ответе не должно быть результатов, поскольку я очищаю поля ввода для функции поиска, но вместо этого выдает полную коллекцию. Он отлично работает, когда есть ввод, но как только я его очищаю, отображается вся коллекция. Вот класс контроллера Laravel.
public function search(Request $request)
{ if($request->ajax()){
$results = DB::table('PROPERTY_TAGS')->where('TAG_NAME','LIKE','%'.$request->search."%")->get();
$output='';
if(count($results)>0){
foreach($results as $result){
$output.='<p>'.$result->TAG_NAME.'</p>';
}
}else{
$output="<p>no data found</p>'";
}
return $output;
}
}
Вот мой HTML с шаблоном лезвия laravel:
<div class="row">
<div class="col s9 "> <input type="text" id="search" name="search" placeholder="Search" /></div>
<div class="col s3"><a href="sass.html"><i class="material-icons">search</i></a></div>
<div class="col s12">
<b>Ex: </b><i>Beltola, Zoo Road</i>
<!-- Suggestions will be displayed in below div. -->
<div id="display"></div>
</div>
</div>
Вот сценарий:
<script type="text/javascript">
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$('#search').on('keyup',function(){
$value=$(this).val();
$.ajax({
type : 'GET',
url : '/search',
data:{'search':$value},
success:function(data){
if(data == '\0'){
$('#display').text('');
}
$('#display').html(data).show();
//alert(data.success);
}
});
});
</script>