![](/img/trans.png)
[英]How to call a function inside CodeIgniter's controller using javascript/jquery?
[英]Call to a controller inside a javascript function
我有一個控制器:messages in the controller中的方法:favourite_checked()一個變量,用於存儲數據庫中我的message表中的messages_id
該URL是產生的
mysite.com/messages/favourite_checked/1 mysite.com/controller/method/message_id
成功調用此URL后,它將連接到我的模型並更新我的消息表中稱為“收藏夾”的列。 該列中的0更新為1。
0 =框未選中(不是收藏夾收件箱消息)-變灰的圖像1 =框已選中(用戶選擇特定消息作為收藏夾消息)-彩色圖像
無論如何,我有些需要如何在我的javascript(已選中)函數中加載此URL。 問題在於,它還需要在被單擊的特定行上加載正確的message_id。
message_id = id ...從我的消息表中獲取,以便從數據庫中獲取並添加到URL的末尾,基本上這就是我的控制器方法存儲在變量中並作為參數傳遞給模型並在模型中的sql查詢,以確保更新了數據庫中的正確行。
在下面的代碼中,我對郵件收件箱鏈接執行相同的操作。 完美運作。
<?php foreach ($query as $row): ?>
<tr>
<?php switch($row['status']){
case 0: $status = "unread"; break;
case 1: $status = "read"; break;
case 2: $status = "replied"; break;
case 3: $status = "fav"; break;
default: $status = '';
}?>
<td width="5%"><input name="message" id="messages" type="checkbox" value="" class="<?php echo $status; ?>"/></td>
<td width="5%"><input name="sunny" id="" type="checkbox" value="" class="favourite" checked="checked" /></td>
<td><?php echo $status; ?></td>
<td><?php echo $row['from_user']; ?></td>
<td><div id="test"><a href="<?php echo site_url("messages/read_message/".$row['id']); ?>"><?php echo $row['subject'] . " " . $row['message']; ?></a></a></div></td>
<td><?php if ($row['date_sent'] == date('Y-m-d')) { echo $row['time_sent']; } else echo $row['date_sent']; ?></td>
</tr>
<?php endforeach; ?>
我只想了一下在選中復選框后需要如何從數據庫加載中獲取上面帶有ID的URL,以便查詢可以運行並更新數據庫中的特定列
並再次取消選中該框時,執行相同的操作。
我還需要在javascript函數內創建一個foreach循環,因為收件箱中的每條消息都必須可用,以便它們能夠使消息成為喜歡的消息。
這是我的JavaScript
// favourite check box
$('input.favourite:checkbox').simpleImageCheck({
image: '<?php echo base_url()?>images/messages/check.png',
imageChecked: '<?php echo base_url()?>images/messages/unchecked.png',
afterCheck: function(isChecked) {
if (isChecked) {
//query to db from php to update favourite number to 1
$.post('');
}
// else (!isChecked)
// {
// //query to db from php to update favourite number to 0
// $.post('');
// }
}
});
提前感謝您的幫助。
您可以在HTML中將消息ID保存為數據屬性 。 例如,
<tr data-message-id="<?php echo $id_goes_here; ?>">
而不是簡單
<tr>
然后,在事件處理程序中,您可以獲得這樣的消息ID
$(this).closest('tr').attr('data-message-id')
我認為this
指向被點擊的元素(或該行內的任何DOM元素)
PS使用最新的jquery版本(我認為是1.4.4),您也可以將.attr('data-message-id')
替換為.data('message-id')
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.