4

我有一个可以添加新类别项目的表单。

<form method="POST" action="backend/categories/form">
    <input type="text" name="title" value="" />

    <button type="submit">Save</button>
    <button type="submit">Save and add new</button>
</form>

我想要做的是,如果我单击Save按钮,它将处理控制器中的一个函数并将我自动重定向到上一页(类别列表页面),但是每当我单击时Save and add new,它应该处理该函数但重新加载同一页面,无需重定向到控制器功能中定义的页面。

控制器:

function form($id){

        // Process the form
        // ...

        // Redirect to the category list page
        redirect($this->config->item('backend_folder').'/categories');
}

有什么技巧可以在不使用 Javascript 的情况下实现它?

4

2 回答 2

14

使用这个 HTML:

<form method="POST" action="backend/categories/form">
    <input type="text" name="title" value="" />

    <button type="submit" name="submitForm" value="formSave">SAVE</button>
    <button type="submit" name="submitForm" value="formSaveNew">SAVE AND ADD NEW</button>
</form>

然后像这样检查 POST 数据:

$formSubmit = $this->input->post('submitForm');
if( $formSubmit == 'formSaveNew' )
    redirect($this->config->item('backend_folder').'/categories/form');
else
    redirect($this->config->item('backend_folder').'/categories');

免责声明:我没有尝试过。

于 2013-05-18T17:52:10.997 回答
0

这可能对您有帮助:

在控制器的保存功能中使用它。插入/更新代码后立即:

$task = $_POST['submit'];
//echo $task //Save or SaveNew depending on pressed button

    switch ($task)
    {
        case 'Save':

             $this->session->set_flashdata('message',$this->lang->line('changes_has_been_saved_successfully'));
            $link = redirect('cashdrawer/cashdrawerform/12'); //Link after save button with id
            break;


    case 'SaveNew':

            $this->session->set_flashdata('message',$this->lang->line('this_order_has_been_saved_successfully'));
                $link = redirect('cashdrawer/cashdrawerform'); //Link after save and new
            //echo $link;


    }


     redirect($link);

并将您的按钮更改为:

<button type="submit">Save</button>
    <button type="submit">SaveNew</button>
于 2013-05-18T18:01:46.947 回答