将动态值传递给onclick函数 - CodeIgniter

时间:2017-06-13 11:40:50

标签: javascript php jquery codeigniter

我试图将id传递给onclick函数,但是当我在我的视图中使用它时它会返回错误的值。

我的模型中的函数获取数据库中的ID:

public function _get_pr_id()
{
    $this->db->select('pr_id');
    $this->db->from('tblprequest');
    $this->db->order_by('pr_date_created', 'DESC');
    $this->db->limit(1);
    $query = $this->db->get();
    $row = $query->row();
    return $row->pr_id;
}

此函数的目的是获取插入数据库中的最新pr_id。例如'15'。

这是我的控制器:

public function purchase_request()
{
    if ($this->session->userdata('username'))
    {
        $data = array(
            'item' => $this->pr->_get_item(),
            'dept' => $this->pr->_get_department(),
            'pr_id' => $this->pr->_get_pr_id(),
            'admin_content' => 'pages/admin_purchase_request'
        );
        $this->load->view('admin_template/admin', $data);
    }
    else
    {
        redirect('login');
    }
}

我将函数$this->pr->_get_pr_id()的值存储到变量pr_id,以便我可以在我的View with AJAX中使用它。

这是视图:

<a onclick="finalize('<?php echo $pr_id; ?>')" id="finalize" class="btn btn-success" aria-expanded="false">Finalize <i class="fa fa-check"></i></a>

我的观点中的功能:

function finalize(id)
{
   alert(id);
}

现在,问题是: 例如,在我的数据库中,最新的pr_id15,但是当我点击finalize按钮时,它会告诉我pr_id14。 希望你理解我的问题。感谢

2 个答案:

答案 0 :(得分:0)

如果您的pr_id是自动增量列,那么只需使用pr_id按结果排序。因为按整数列排序很快。 在您的情况下,在您获取最新的pr_id之后可能会插入新记录。所以没有万无一失的解决方案 处理你的案子。  因此,当您致电Auth时,请再次检查您当前的pr_id值是否为最新值。基于此,您可以处理您的逻辑。

答案 1 :(得分:0)

我想你必须使用onjlick事件的ajax这样你确定从数据库中获取最后一个值,在你描述的用例中,有另一个源在你获取数据后更新了数据库,所以使用ajax将提供最后存储的值,您可以使用类似于:

的内容
$(document).on("click",".yourselector",function(e){

$.ajax({
    type: 'POST',
    url: "controller/function",
    data: {
        param: myparamvalue
    },
    beforeSend: function() {

    },
    complete: function() {

    },
    success: function(_result) {

    }
});

});

其中Controller是使用从db

获取id的方法调用模型的控制器

如果不能正常工作plz替换:

controller/function

由此:

/controller/function

锄头有帮助,