У меня есть регистрационная форма. после успеха я хочу удалить значение set_value
и удалить все опубликованные значения.
view.php
<?php echo validation_errors(); ?> <?php if(isset($msg)){ echo $msg; } ?> <form action="" method="post"> <h5>Username</h5> <input type="text" name="username" value="<?php echo set_value('username'); ?>" size="50" /> <h5>Password</h5> <input type="text" name="password" value="<?php echo set_value('password'); ?>" size="50" /> <div> <input type="submit" value="Submit" /> </div> </form>
Контроллер function.php
$this->load->helper(array('form', 'url')); $this->load->library('form_validation'); $this->form_validation->set_rules('username', 'Username', 'required'); $this->form_validation->set_rules('password', 'Password', 'required'); if ($this->form_validation->run() == FALSE){ $data->msg='Please fill all field'; $this->load->view('view',$data); }else{ $data->msg='success'; unset($_POST); $this->load->view('view',$data); }
с$this->load->helper(array('form', 'url')); $this->load->library('form_validation'); $this->form_validation->set_rules('username', 'Username', 'required'); $this->form_validation->set_rules('password', 'Password', 'required'); if ($this->form_validation->run() == FALSE){ $data->msg='Please fill all field'; $this->load->view('view',$data); }else{ $data->msg='success'; unset($_POST); $this->load->view('view',$data); }
Я пытаюсь unset($_POST)
но не работает, также попробуйте
public function clear_field_data() { $this->_field_data = array(); return $this; }
но ничего не работает. Я использую codeigniter 3.1.5. Пожалуйста, помогите разобраться.
Вы можете обновить страницу с успехом:
$this->load->helper(array('form', 'url')); $this->load->library('form_validation'); $this->form_validation->set_rules('username', 'Username', 'required'); $this->form_validation->set_rules('password', 'Password', 'required'); if ($this->form_validation->run() == FALSE){ $data['msg']='Please fill all field'; }else{ $data['msg']='success'; redirect($_SERVER['REQUEST_URI'], 'refresh'); } $this->load->view('view',$data);
Я решил свою проблему сам.
view.php
<?php echo validation_errors(); ?> <?php if(isset($msg)){ echo $msg; } ?> <form action="" method="post"> <h5>Username</h5> <input type="text" name="username" value="<?php echo set_value('username'); ?>" size="50" /> <h5>Password</h5> <input type="text" name="password" value="<?php echo set_value('password'); ?>" size="50" /> <div> <input type="submit" value="Submit" /> </div> </form>
Контроллер function.php
$this->load->helper(array('form', 'url')); $this->load->library('form_validation'); $this->form_validation->set_rules('username', 'Username', 'required'); $this->form_validation->set_rules('password', 'Password', 'required'); if ($this->form_validation->run() == FALSE){ $data->msg='Please fill all field'; $this->load->view('view',$data); }else{ $data->msg='success'; $this->form_validation->clear_field_data(); $this->load->view('view',$data); }
MY_Form_validation.php
class MY_Form_validation extends CI_Form_validation { public function __construct($config) { parent::__construct($config); } public function clear_field_data() { $_POST = array(); $this->_field_data = array(); return $this; } }
И проблема решена в новой версии codeIgniter.