ajax - Serialize Laravel Query Builder -


i able construct query using laravel, , serialize url string. allow me create routes unserialize query builder, run query, , make view displays database results.

for example, implement button refreshes list of posts made kryo:

http://example.com/ajax/posts.php?name=kryo&order_by=created_at&order_type=desc

posts.php route unserializes, validates, , runs query in url params, , provides results view.

perhaps not useful in general, find handy ajax requests. if knows how implement laravel plugin of nature, fantastic.

i'll try give basic idea:

in laravel have create route make request function/method, @ first need create route listening ajax request, example:

route::get('/ajax/posts', array('uses' => 'postcontroller@index', 'as' => 'showposts')); 

now, create link in view points route, create link may try this:

$url = to_route('showposts'); 

if use this:

<a class='ajaxpost' href="{{ $url }}?name=kryo&order_by=created_at&order_type=desc">get posts</a> 

it'll create ink route. so, make sure able pass $url javascript or manually can write url using /ajax/posts?name=.... once done creating link need create javascript handler link (maybe using click event) handle click event handler, make ajax request, if it's jquery this:

$('.ajaxpost').on('clcik', function(e){     e.preventdefault();     var url = $(this).attar('href');     $.getjson(url, function(response){         $.each(response, function(key, value){             // loop... may use $(this) or value         });     }); }); 

in postcontroller controller class, create index method:

class postcontroller extends basecontroller {      public function index()     {         $name = input::get('name');         $order_by = input::get('order_by');         $created_at = input::get('created_at');         $order_type = input::get('order_type');          $posts = post::wherename($name)->orderby($order_by, $order_type)->get();         if(request::ajax()) {             return response::json($posts);         }         else {             // return view non ajax         }     } } 

if want send rendered view server side javascript handler html change getjson get , instead of return response::json($posts); use

return view::make('viewname')->with('posts', $posts); 

in case make sure that, view doesn't extends master layout. may not need gives idea how can implement it.


Comments

Popular posts from this blog

java - WrongTypeOfReturnValue exception thrown when unit testing using mockito -

php - Magento - Deleted Base url key -

android - How to disable Button if EditText is empty ? -