我试图将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_id
为15
,但是当我点击finalize
按钮时,它会告诉我pr_id
是14
。
希望你理解我的问题。感谢
答案 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
锄头有帮助,