2017-06-23 10 views
0

私は登録フォームを持っています。成功後、私はset_valueの値を削除し、すべての投稿された値を解除します。成功した後のフォームデータのクリアPHPがjqueryでないcodeigniterを使用

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); 
} 

私は

public function clear_field_data() { 
    $this->_field_data = array(); 
    return $this; 
    } 

が、nothiを試みるも、unset($_POST)を試してみたが働いていません働いている。私はcodeigniter 3.1.5を使用しています。それを整理するのを助けてください。

答えて

0

私は私の自己私の問題を解決しました。

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で問題が解決しました。

0

あなたは成功した場合にページを更新することができます。

$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); 
+0

私はサブダミンで働いているが、成功メッセージを表示していないので、この 'redirect(current_url()、 'refresh');')を試しました。 –

+0

セッションフラッシュを使用します。 '$ this-> session-> set_flashdata( '成功'、 'あなたのメッセージ');' https://www.codeigniter.com/user_guide/libraries/sessions.html#flashdata –

+0

これは私を解決する素晴らしい方法ではありません問題。私は 'set_value'フィールドを空にしたいからです。私はリダイレクトすることができ、空のフィールドを取得できることを知っています。 –

関連する問題