2011-01-18 41 views
0

我有一個控制器:消息 在控制器的方法:favourite_checked() 一個變量,它存儲從我的消息表中我的數據庫messages_id電話JavaScript函數內的控制器

此URL產生

mysite.com/messages/favourite_checked/1 mysite.com/controller/method/message_id

當這個網址被成功調用它連接到我的模型,在我所謂的「最愛」的消息表更新一列。該列中的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從我的數據庫負載抓起檢查框後這樣的查詢可以運行,並在我的數據庫

更新特定的列和做同樣的事情網址當箱子再次被選中時。

我還需要在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(''); 
//  } 
    } 
}); 

幫助提前感謝感謝。

回答

1

您可以在html中將消息ID保存爲data attribute。例如,

<tr data-message-id="<?php echo $id_goes_here; ?>"> 

,而不是簡單的

<tr> 

然後,在你的事件處理程序,你可以得到這樣

$(this).closest('tr').attr('data-message-id') 

消息ID我認爲this指向一個元素點擊(或該行內的任何DOM元素)

PS使用最近的jQuery版本(1.4.4 ,我認爲),你也可以用.data('message-id')代替.attr('data-message-id')

+0

完美工作 – LondonGuy 2011-01-19 10:30:03

相關問題