表单提交后的CodeIgniter刷新页面

时间:2015-06-24 10:59:59

标签: php codeigniter

我正在尝试通过CodeIgniter刷新页面,但我似乎无法让它工作。

基本上,我们在页面上有一个作业列表,用户可以选择过滤所述作业。

因此,用户将选中复选框,然后单击“保存”以根据用户ID将其选择保存到数据库中。

一旦他们保存了他们的选择,我显然需要刷新数据,但我已经尝试了很多东西,这似乎根本不起作用。我假设我的重定向位于错误的位置,目前在控制器中。

我尝试了以下内容:

    $this->load->helper('url');

    redirect('dashboard', 'refresh');

但没有任何反应。

我在控制器功能中有以上重定向:

        public function save_filters() {    

        if (isset($_POST)){
            $filters = $_POST['client_ids'];
        }   

        $this->load->model('dashboard_model');  
        $this->dashboard_model->update_dashboard_filters($filters);

         $this->load->helper('url');

        redirect('dashboard', 'refresh');

    }

我把它放在了错误的地方吗?

我没有从萤火虫那里得到任何错误或警告?

表格:

            <form id="filters_form">
            <table>
                <tr>
                    <td>
                        <label for="GAB Robins">GAB Robins </label><input type="checkbox" name="client_ids[]" value="4">
                    </td>
                    <td>
                        <label for="Cunningham Lindsay">Cunningham Lindsay </label><input type="checkbox" name="client_ids[]" value="5">
                    </td>
                    <td>
                        <label for="Lloyds">Lloyds </label><input type="checkbox" name="client_ids[]" value="7">
                    </td>
                    <td>
                        <label for="Sundry/Private">Sundry/Private </label><input type="checkbox" name="client_ids[]" value="9">
                    </td>
                    <td>
                        <label for="WNS Ltd">WNS Ltd </label><input type="checkbox" name="client_ids[]" value="4441">
                    </td>
                    <td>
                        <label for="Stream">Stream </label><input type="checkbox" name="client_ids[]" value="4493">
                    </td>
                    <td>
                        <label for="Redesign">Redesign </label><input type="checkbox" name="client_ids[]" value="5295">
                    </td>                                                                                                                       
                </tr>
            </table>
            <input type="button" value="Save selections" name="save_filters" id="save_filters_button" />
        </form>

处理表单的javascript

        save_filter: function () {
        $.post('/dashboard/save_filters', $('#filters_form').serialize(), function (response) {
            if (response.status == 'ok') {
                if ($('.ui-success').length == 0) {
                    $('#page_main').before('<div class="ui-success" style="margin-bottom: 1em; font-weight: bold; border-bottom: 1px solid #ccc; padding: 1em;"><img src="/common/images/icons/accept.png" style="margin-right: 10px;" align="absmiddle" />Filters saved!</div>').fadeIn(1000);
                }
            }
            else {
                $(response.errors).each(function (i, item) {
                    alert(item);
                });
            }
        });
    }   

2 个答案:

答案 0 :(得分:1)

将动作置于表格中 action="<?php base_url(); ?>controller_name/function_name"method="post"

示例:

 <form id="filters_form"  action="<?php base_url(); ?>controller_name/function_name" method="post">

更新:因为您使用的是JS,所以您不会刷新页面。如果要刷新页面,请不要使用JS。

答案 1 :(得分:0)

它无法正常工作,因为您有一个Ajax请求,并且在将数据返回给发出该请求的JavaScript之前,您无法在服务器上进行重定向。

您可以根据您的回复进行重定向