【问题标题】:CodeIgniter: Form Validation good practiceCodeIgniter:表单验证良好实践
【发布时间】:2015-02-24 21:35:29
【问题描述】:

我正在使用 Parse + CodeIgniter 开发一个项目。 我有两个屏幕来管理 ParseUsers:allUsers.php,它列出了所有用户。 还有 detailUser.php,用于创建/编辑用户。

当用户提交表单(新 ParseUser)时,我调用 save 方法。其中包含代码:

try{

                if ($user_id)
                    $user->save(true); // Update
                else
                    $user->signUp(); // Insert

                $this->session->set_flashdata('success', 'Success');
                redirect('all-users');              
            }
            catch(Parse\ParseException $error){
                $error_message = $error->getMessage();
                $this->session->set_flashdata('error', 'Error: ' . $error_message); 
                $this->data['user'] = $user;
                $this->view = 'user/userDetail';
            }           

在视图中,我有这个(示例用户名):

<input type="text" id="name" name="name" class="form-control" required value="<?php if(isset($user)): echo $user->name; endif;?>">

表单保持正确填写的字段,但 flashdata 为空,如果我刷新页面,则显示 flashdata。 所以,我在搜索后发现有人说 flashdata 只适用于重定向。

如果我重定向我的页面,就会出现 flashdata。但是,这些字段没有填写。

我阅读了有关 set_value 的信息,这是维护字段的正确方法吗?但是,我喜欢只有两个视图,一个是列出所有用户,另一个是创建/编辑用户。那么,如果我使用 set_value,这可能吗? 最佳做法是什么?

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    使用加载而不是重定向

            try{
    
                if ($user_id)
                    $user->save(true); // Update
                else
                    $user->signUp(); // Insert
    
                $this->session->set_flashdata('success', 'Success');
                $this->load->view('path');//use load instead of redirect              
            }
            catch(Parse\ParseException $error){
                $error_message = $error->getMessage();
                $this->session->set_flashdata('error', 'Error: ' . $error_message); 
                $this->data['user'] = $user;
                $this->view = 'user/userDetail';
            }   
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-30
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多