我如何在 laravel 4.2 中搜索搜索结果
how to i search on search results in laravel 4.2
有一个简单的页面,我可以在其中按关键字显示搜索结果。
但现在我想按某些标准搜索这些结果。
我该怎么做
搜索控制器
class SearchController extends \BaseController {
public function search() {
$keyword = Input::get('header-search-query');
if (empty($keyword)) {
$product = Product::paginate(10);
$this - > setModel($product);
return View::make('product.listbykeyword') - > with('products', $product);
}
return View::make('product.listbykeyword') - > with('products', Product::like('title', $keyword) - > paginate(10));
}
public function advance() {
//what should i put here
}
}
查看
@foreach($products as $product)
<div class="media">
<div class="media-left" style="width:16%;">
<a href="{{ URL::to('image/'.$product->productImage()->first()['image']) }}">
{{ HTML::image('image/'.$product->productImage()->first()['image'],'no-image',array('class'=>'media-object','height'=>'100','width'=>'100'))}}
</a>
</div>
<div class="media-body">
<h4 class="media-heading">{{ HTML::link('/product/'.$product->id,$product->title) }}</h4>
<p>{{substr($product->description,0,85)}}</p>
<p>Price : {{$product->price}} TK</p>
<p class="time">{{$product->created_at->diffForHumans()}}
<b>Near</b> {{$product->location}}
</p>
</div>
</div>
<hr></hr>
@endforeach
因为在你的情况下你确实不能使用 Datatables 因为它是一个 public 搜索我建议你使用 ajax 调用按键更改事件。
第 1 步:
从您的文本框中检测按键更改
<input id='myTextbox1' type='text'/>
$('#myTextbox1').on('input', function() {
alert('Text1 changed!');
});
这是fiddle
第 2 步:
将 ajax 页面调用到您的控制器
$.ajax({
type: "POST",
url : "yourcontroller",
data : dataString,
success : function(data){
$("#result").html(data);
}
});
在您的页面中放置一个名为 result
的 div。
因此,第一次您将从用于搜索的默认控制器获得结果,然后下次当您在 myTextbox1
中键入文本时,它会调用控制器 yourcontroller
并在你的控制器你应该得到 datastring
和 return 匹配输出到视图。
希望对您有所帮助。
有一个简单的页面,我可以在其中按关键字显示搜索结果。 但现在我想按某些标准搜索这些结果。
我该怎么做
搜索控制器
class SearchController extends \BaseController {
public function search() {
$keyword = Input::get('header-search-query');
if (empty($keyword)) {
$product = Product::paginate(10);
$this - > setModel($product);
return View::make('product.listbykeyword') - > with('products', $product);
}
return View::make('product.listbykeyword') - > with('products', Product::like('title', $keyword) - > paginate(10));
}
public function advance() {
//what should i put here
}
}
查看
@foreach($products as $product)
<div class="media">
<div class="media-left" style="width:16%;">
<a href="{{ URL::to('image/'.$product->productImage()->first()['image']) }}">
{{ HTML::image('image/'.$product->productImage()->first()['image'],'no-image',array('class'=>'media-object','height'=>'100','width'=>'100'))}}
</a>
</div>
<div class="media-body">
<h4 class="media-heading">{{ HTML::link('/product/'.$product->id,$product->title) }}</h4>
<p>{{substr($product->description,0,85)}}</p>
<p>Price : {{$product->price}} TK</p>
<p class="time">{{$product->created_at->diffForHumans()}}
<b>Near</b> {{$product->location}}
</p>
</div>
</div>
<hr></hr>
@endforeach
因为在你的情况下你确实不能使用 Datatables 因为它是一个 public 搜索我建议你使用 ajax 调用按键更改事件。
第 1 步:
从您的文本框中检测按键更改
<input id='myTextbox1' type='text'/>
$('#myTextbox1').on('input', function() {
alert('Text1 changed!');
});
这是fiddle
第 2 步:
将 ajax 页面调用到您的控制器
$.ajax({
type: "POST",
url : "yourcontroller",
data : dataString,
success : function(data){
$("#result").html(data);
}
});
在您的页面中放置一个名为 result
的 div。
因此,第一次您将从用于搜索的默认控制器获得结果,然后下次当您在 myTextbox1
中键入文本时,它会调用控制器 yourcontroller
并在你的控制器你应该得到 datastring
和 return 匹配输出到视图。
希望对您有所帮助。