使用带有codeigniter活动记录的ajax从数据库更新字段失败

时间:2013-11-09 13:56:48

标签: php ajax codeigniter

我在使用ajax更新数据库中的qty字段时遇到问题。我不知道错误发生在哪里,因为当我尝试单击减号按钮时,它会继续多次减去它。我谷歌相同的问题,但没有找到任何解决方案。这是我的代码。

这是我的 CONTROLLER:

 public function deduct(){
    $this->inpatient_model->deduct();
    $data['inpatient'] = $this->inpatient_model->getinpatientlab();
    $this->load->view('admin/queryinpatient',$data);
 }

这是我的模型:

 public function deduct(){  
    $this->db->select('*');
    $this->db->from('inpatientlab');
    $this->db->where('ilid',$this->input->post('lid'));
    $query = $this->db->get();
    $row = $query->result_array();
    if($query->num_rows() > 0 ){
        if($row[0]['qty'] > 1){
            $uno = 1;
            $this->db->set('qty','qty-'.$uno,FALSE)
                    ->where('ilid',$this->input->post('lid'))
                    ->update('inpatientlab');               
        }
    }   

}

这是我的视图:

<?php if($inpatient): ?>
<table class="table table-striped">
    <tr>
        <th>Description</th>            
        <th>Quantity</th>
        <th>Price</th>
        <th>Sub Total</th>
        <th>Action</th>
    </tr>
<?php foreach($inpatient as $rows): ?>
    <tr>
        <td><?php echo $rows->ldesc; ?></td>
        <td><?php echo $rows->qty; ?></td>
        <td><?php echo $rows->lprice; ?></td>
        <td><?php echo number_format($rows->qty * $rows->lprice,2); ?></td>
        <td>
            <button value="<?php echo $rows->ilid; ?>" class="btn btn-danger btnRemove"><i class="icon-trash"></i></button>
            <button value="<?php echo $rows->ilid; ?>" class="btn btn-danger btnMinus"><i class="icon-minus"></i></button>
        </td>
    </tr>
<?php endforeach; ?>
</table>
<script type="text/javascript" >
    (function(){        
    $(document).on('click','.btnMinus',function(){
        var lid = $(this).val(),
            pid = $('.pid').val(),
            dataString = "id=" + pid + "&lid=" + lid;           
            console.log(dataString);
            $.ajax({
                type:"POST",
                url: base_url + "inpatient/deduct",
                data:dataString,
                success:function(data){
                    $('.pickedlab').html(data);
                }
            })
        return false;

    });

})()

此处的View也是通过bootstrap-modal中的ajax加载的。我真的不知道它为什么继续减去多次。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用浏览器调试并查看您的AJAX是否多次呼叫。我不熟悉你的Controller-Model设置,通常我的模型只是纯POCO类。所有计算都在控制器级别完成。