![](/img/trans.png)
[英]passing dynamic value from onclick to another javascript function not working
[英]passing dynamic value to onclick function - 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
到變量pr_id
以便可以在AJAX的View中使用它。
這是視圖:
<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
。 希望你理解我的問題。 謝謝
如果您的pr_id是自動遞增列,則只需使用pr_id按結果排序即可。 因為按整數列排序是快速的。 在您的情況下,獲取最新的pr_id后可能會插入新記錄。 因此,沒有萬無一失的解決方案來處理您的案件。 因此,當您調用finalize()
,再次檢查您當前的pr_id值是否為最新值。 基於此,您可以處理您的邏輯。
我想您必須將ajax與onclick事件一起使用,這樣才能確保您從數據庫中獲取了最后一個值,在您描述的用例中,有另一個來源在獲取數據后會更新數據庫,因此使用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的模型調用控制器的控制器
如果不起作用請替換:
controller/function
這樣 :
/controller/function
helps頭有幫助,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.