有几种不同的方法来做到这一点! (编程的美化,amirite?)
选项 1:使用 Flashdata 重定向
您可以重定向以使用原始 url (http://foo.bar/sort/FIELD/asc) 处理数据,然后执行重定向 set_flashdata,然后让原始 http://foo.bar 在加载前查找 flashdata。
function sort($field, $sort) {
//do stuff
$this->session->set_flashdata('sort_result', $sort_result);
}
function index() {
if ($this->session->flashdata('sort_result')) {
//do fanciness
} else {
//do normal things.
}
}
缺点:
不得不直接/重定向的额外步骤可能会惹恼用户并且坦率地说看起来有点糟糕,flashdata 也可能需要传递 JSON 结果而不是完整的 PHP 对象。
选项 2:Ye Ole Javascript (AJAX):
使用 javascript 将数据加载到您的表中,这将使用户保持在同一页面上,但逻辑有点奇怪。
PHP 端:
function sort($field, $sort) {
echo $this->load->view('sorted_table_view', $sort_result, TRUE);
}
function index() {
//Normal
}
Javascript 端:
(function() {
$.get('<?= site_url('sort/field/asc'); ?>', function(data) {
//Data is the echoed view.
$('#mydiv').html(data);
});
});
无论如何,这只是您可以做到的两种快速方法。我敢肯定还有更多!