0

DBに「payroll」というテーブル名があり、従業員の給与、ボーナス、残業のフィールドがあります。従業員の給与はテーブルに保存されます。私がやろうとしているのは、ボーナスフィールドを計算することです。つまり、従業員の給与が2000で、ボーナスが500の場合、「ボーナス」フィールドに2500として保存されます。問題は、コードにエラーが表示されないのに、「残業」フィールドがDBで更新されないことです。 。codigniterを使用しています

私のコントローラー:

     function update_bonus(){
         $id=$this->input->post('id');
         $salary=$this->input->post('salary');
         $bonus=$this->input->post('bonus');
         $update=$salary+$bonus;
         $data['bonus']=$this->input->post('update');

         if ($this->pay->update_overtime($id,$data)==TRUE){
         $this->load->view('success');


         }
         else
                {
                $this->load->view('unsuccess');

                }
         }

    My model:

        function update_overtime($id,$data){
        $this->db->where('id', $id);
        $this->db->update('payroll', $data);
        if ($this->db->affected_rows() == '1')
        {
            return TRUE;
        }
        return FALSE;


    }
    }

The form:

echo form_open('payroll/update_bonus');?>
<p> Previous Salary was <? echo $info[0]->salary;?> .</p>
<p>
<?php echo form_hidden('id', $id, 'id="id'); ?>
</p>    
<p>
<?php echo form_hidden('id', $salary, 'id="salary'); ?>
</p> 

        <label for="bonus">Update Basic Salary <span class="required">*</span></label>
        <?php echo form_error('salary'); ?>
        <br /><input id="bonus" type="text" name="bonus"  value="<?php echo set_value('bonus'); ?>"  />
</p>


<p>
        <?php echo form_submit('submit', 'Submit'); ?>
</p>

<?php echo form_close(); ?>
4

1 に答える 1

0

変数とフォーム要素の名前が混同されています -

あなたのforビューでは、これらのhidden要素を持っています

<?php echo form_hidden('id', $id, 'id="id'); ?>
</p>    
<p>
<?php echo form_hidden('id', $salary, 'id="salary'); ?>
</p> 

私はあなたが彼らになりたかったと思います -

<?php echo form_hidden('id', $id, 'id="id'); ?>
</p>    
<p>
<?php echo form_hidden('salary', $salary, 'id="salary'); ?>
</p> 

あなたのcontroller update_bonus()機能で

$id=$this->input->post('id');
         $salary=$this->input->post('salary');
         $bonus=$this->input->post('bonus');
         $update=$salary+$bonus;
         $data['bonus']=$this->input->post('update');

ビューファイルに設定されていない投稿データの「更新」値を使用しようとしています。

私はあなたが望んでいたと思います$update=$salary+$bonus; $data['bonus']=$update;//bonusはデータベーステーブルの列名であり、これはあなたが更新したい唯一の列ですmodel

于 2012-08-17T07:29:15.300 に答える