目前我还没有要求它在模型中实际执行任何操作,因此我希望在提交表单时将其重定向到其他位置,或者是否存在验证错误(或者是第一次访问页面)加载表单视图。
控制器:
public function edit($page )
{
$this->load->helper('form');
$this->load->library('form_validation');
$this->load->helper('url');
$this->load->helper('html');
$data['workout'] = $this->workout_model->get_workout($page);
$data['exercise_list'] = $this->workout_model->get_exercise_list();
$data['sets'] = $this->workout_model->get_sets($data['workout']['id']);
$data['scripts'] = array('templates/script_add_ex','templates/script_add_set');
if(empty($data['workout']))
{
show_404();
}
$this->form_validation->set_rules('woDate', 'Date', 'required'); //Any way here to just say "no blanks?"
if($this->form_validation->run() == FALSE)
{
$data['title'] = 'Edit Workout - '.$data['workout']['datetime'];
$this->load->view('templates/header', $data);
$this->load->view('workouts/edit', $data);
$this->load->view('templates/footer', $data);
}
else
{
$woDate = $this->workout_model->update_workout();
redirect('/workouts/view/'.$woDate);
}
}
型号:
public function update_workout()
{
$woDate = $this->input->post('woDate'); //just simply setting $woDate - is this being returned?
}
所以我有一个视图" mysite.com/workouts/view/,其中包含一个数据表,以及一个指向"编辑"的链接。该页面将带您进入" mysite.com/workouts/edit /
当我提交时,我希望满足vaildation规则(填写woDate)并重定向回" mysite.com/workouts/view /"
但我被发送到" mysite.com/workouts/edit"没有"编辑",所以它会抛出错误,说没有设置$ page,因为它不在URL中我猜...但我不明白为什么它试图去当我认为表单提交有效时返回编辑页面...
答案 0 :(得分:0)
认为这就是它的全部......感谢@Loopo提示思考过程。
我最初用
打开了表单<?php echo form_open('workouts/edit'); ?>
哪会导致:
<form action="mysite.com/workouts/edit" method="post" accept-charset="utf-8">
在验证表单时,如果由于验证未完成而需要返回编辑页面,则不知道要编辑什么,所以我需要将其更改为:
<?php echo form_open('workouts/edit/'.$workout['datetime']); ?>
对外输出:
<form action="mysite.com/workouts/edit/2014-07-09_12:07" method="post" accept-charset="utf-8">
此错误导致事情无法正常工作,因此,现在,在成功进行表单验证后,我的重定向工作正常。
全部谢谢!