0

我的数据库中有一个表名“工资单”,其中包含员工的薪水、奖金、加班字段。员工的工资保存在表中。我想要做的是计算奖金领域。这意味着如果员工的工资是 2000,奖金是 500,那么在“奖金”字段中,它将被保存为 2500。问题是我的代码没有显示任何错误,但数据库中的“加班”字段没有更新. 我正在使用 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

您将变量和表单元素名称混淆了-

在你看来——你有这些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 回答