私はCodeIgniterを初めて使用し、単純なCRUDアプリでフォームを送信した後、フォームの値を再入力するのに本当に苦労しています(エラーと成功の両方で)。ここにコードを投稿すると役立つかもしれないと思ったので、誰かが助けてくれるかもしれません。
これが私のコントローラーからのものです:
function update($id){
        $seller = $this->seller_model->get_seller_byID($id)->row();
        $data['seller'] = $seller;
        $data['title'] = 'Update seller';
        $data['message'] = '';
        $data['action'] = site_url('seller/updateSeller');
        $data['link_back'] = anchor('seller/ManageSellers/','Back to list of sellers',array('class'=>'back'));
        $this->load->view('EditSeller', $data);
    }
    function updateSeller(){
        $data['title'] = 'Update seller';
        $data['action'] = site_url('seller/updateSeller');
        $data['link_back'] = anchor('seller/ManageSellers/','Back to list of sellers',array('class'=>'back'));
        $this->setValidation();
        if ($this->form_validation->run() == FALSE)
        {
        $data['message'] = 'fail';
        }
        else
        {
            $id = $this->input->post('id');
            $seller = array('s_fname' => $this->input->post('fname'),
                            's_lname' => $this->input->post('lname'),
                            's_email' => $this->input->post('email'),
                            's_password' => $this->input->post('pword'));
            $this->seller_model->update_seller($id,$seller);
            $data['message'] = '<div class="success">update seller success</div>';
        }   
        $this->load->view('EditSeller', $data);
    }
    function setValidation()
    {
        $this->form_validation->set_rules('fname', 'First Name', 'required');
        $this->form_validation->set_rules('lname', 'Last Name', 'required');
        $this->form_validation->set_rules('email', 'Email', 'required');
        $this->form_validation->set_rules('pword', 'Password', 'required');
        $this->form_validation->set_rules('status', 'Status', 'required');
        $this->form_validation->set_rules('dealer', 'Dealer', 'required');
    }   
ここに私の見解があります:
    <html>
<head>
</head>
<body>
        <h2><?php echo $title; ?></h2>
        <?php echo $message; ?>
        <?php echo validation_errors(); ?>
    <div class="content">
        <form method="post" action="<?php echo $action; ?>">
        <div class="data">           
                <p><?php
                    if (isset($seller->s_id))
                    {
                        echo "Id: " . $seller->s_id;
                        echo form_hidden("id", isset($seller->s_id) ? $seller->s_id : '' );
                    }
                ?></p>
                <p>First Name: 
                    <?php 
                        $field = array(  'name' => 'fname', 
                                         'size' => 30, 
                                         'class'=>'input', 
                                         'value' => (isset($seller->s_fname) ? $seller->s_fname : '' ) );
                        echo form_input($field, set_value('fname')); 
                    ?>
                </p>
                <p>Last Name: 
                    <?php 
                        $field = array(  'name' => 'lname', 
                                         'size' => 40, 
                                         'class'=>'input', 
                                         'value' => (isset($seller->s_lname) ? $seller->s_lname : '' ) );
                        echo form_input($field, set_value('lname')); 
                    ?>
                </p>
                <p>Email: 
                    <?php 
                        $field = array(  'name' => 'email', 
                                         'size' => 60, 
                                         'class'=>'input', 
                                         'value' => (isset($seller->s_email) ? $seller->s_email : '' ) );
                        echo form_input($field, set_value('email')); 
                    ?>
                </p>
                <p>Password: 
                    <?php 
                        $field = array(  'name' => 'pword', 
                                         'size' => 20, 
                                         'class'=>'input', 
                                         'value' => (isset($seller->s_password) ? $seller->s_password : '' ) );
                        echo form_password($field, set_value('pword')); 
                    ?>
                </p>
                <p>Status: 
                    <select name="status">
                        <option value="1" <?php echo set_select('status', '1', TRUE); ?>>Verified</option>
                        <option value="2" <?php echo set_select('status', '2'); ?>>Not verified</option>
                    </select>
                </p>
                <p>Dealer:
                    <input type="radio" name="dealer" value="Y" <?php echo set_radio('dealer', '1', TRUE); ?>/> Yes
                <input type="radio" name="dealer" value="N" <?php echo set_radio('dealer', '2'); ?>/> No
                </p>
                <p><?php
                    if (isset($seller->s_startdate))
                    {
                        echo "Start Date: " . $seller->s_startdate;
                    }
                ?></p>
           <input type="submit" value="Save"/>
               <p><?php echo $link_back; ?></p>
        </div>
        </form>
        <br />
    </div>
</body>
</html>
検証が成功すると、データベースに適切に保存されますが、ページをリロードするとテキスト ボックスに値が入力されません。検証エラーが発生すると、データベースは期待どおりに変更されませんが、値はフォーム フィールドに保持されません。