2016-10-23 1 views
0

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'); 

});

+0

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

+0

danke bro, es funktioniert: D – rafitio

+0

Ich habe meinen Kommentar in eine Antwort umgewandelt. Bitte Akeptiere es. – linuxartisan

Antwort

Verwandte Themen