2011-01-18 50 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

相关问题