filtern Ich möchte meine Tabelle mit Dropdown auf Laravel zu filtern, es hat funktioniert, aber wenn ich einen neuen Datensatz im Formular erstellen möchten, erstellen Sie das Formular nur die Daten des zu zeigen getid-Funktion, keine Formularansicht erstellen.wie Tabelle mit Dropdown auf Laravel
hier mein Code
<form method="GET">
<div id="sample-table-3">
<label>Display as Category</label>
<select name="category_id" id="category_id">
<option value="0">Show All</option>
@foreach($categories as $category)
<option value="{{ $category->id }}">{{ $category->category }}</option>
@endforeach
</select>
</div>
</form>
hier das Javascript
<script type="text/javascript">
$(document).ready(function(){
$('#category_id').on('change', function(e){
var id_category = e.target.value;
$.get('{{ url('news')}}/'+id_category, function(data){
console.log(id_category);
console.log(data);
$('#news_data').empty();
$.each(data, function(index, element){
$('#news_data').append("<tr><td>"+element.title+"</td><td>"+element.file+"</td>"+
"<td>"+element.content+"</td><td>"+element.like+"</td><td>"+element.view+"</td><td>"+find('.action')+"</td></tr>");
});
});
});
});
</script>
und dies ist mein Controller
public function index(Request $request)
{
$news = News::paginate(10);
$categories = Category::all();
return view('news.news')
->with(compact('news'))
->with(compact('categories'));
}
public function create()
{
$news = News::all();
/* Get Category */
$categories = Category::all();
//dd($categories);
return view('news.create')
->with(compact('news'))
->with(compact('categories'));
}
public function getid($id_category){
$categories = Category::all();
if($id_category==0){
$news = News::all();
}else{
$news = News::where('category_id','=',$id_category)->get();
}
return $news;
}
und dies ist mein Weg
Route::get('/news/{id_category}', '[email protected]');
Strecke :: Gruppe ([ 'Middleware' => 'Web'], function() {
Route::resource('news', 'NewsController', ['except' => ['getid']]);
Route::resource('category', 'CategoryController');
});
Ihre Route 'Strecke :: get ('/ news/{id_category}', '@ Newscontroller getid');' wird wahrscheinlich mit der 'show' Route clashing von 'NewsController'. Ändere es in so etwas wie 'Route :: get ('/ news/getid/{id_category}', 'NewsController @ getid');' – linuxartisan
danke bro, es funktioniert: D – rafitio
Ich habe meinen Kommentar in eine Antwort umgewandelt. Bitte Akeptiere es. – linuxartisan