[eluser]Andy Fraley[/eluser]
I just recently had to do this myself. I kept the filter values in the url. I needed more than one filter and sorting, though, so I had to write my own pagination functions as CI's pagination is pretty limited.
My urls look something like:
Code:
site_url('controller/function/' . $pagination_offset . '/'. $sort_col . '/' . $sort_direction . '/' . $filter_col . '/' . $filter_id)
I handled the result filtering in the database queries so that I could get the correct number of results per page and total results for the pagination with filters. If the filter or sorting changes, the user gets sent back to page one.
If you know your number of results will never be huge, it may be easier to handle this in javascript and just send all of the results to the browser.