我正在尝试实现类似于电子邮件中的已读/未读的内容。如何使用jquery,php和mysql这样做。 我想要分步做什么:
1-当我点击html表格中的一行时,我会在数据库中更改此消息的状态。 2-然后更改此行的背景,但如果我注销并重新登录行仍保持更改。 3-知道我已经在为表行使用css类。
到目前为止,我所做的是通过更新改变了数据库中此特定消息的状态。
问候。
答案 0 :(得分:2)
我不能给你所有的代码,因为这只是有点太多了,但是我会这样做:
您必须考虑禁用JavaScript支持的用户要做的事情。
如果您需要更多编码帮助,请发表评论!
答案 1 :(得分:0)
如果它是一个制作网站,你可能会想要提供一个没有javascript的解决方案,所以如果你在点击上更改页面,那么你根本不需要涉及到javascript。在数据库中创建一个默认为0的“读取”布尔字段。当您单击以查看记录时,请将记录ID保留在URL中,并在单击后通过php在该页面中将“read”更改为1。
如果你想在点击后留在同一个页面,那么你需要得到javascript,正如Franz上面提到的那样,但是以渐进增强的方式做到这一点很好,添加了javascript价值,以及无论如何都可以使用的基本功能。
答案 2 :(得分:0)
也许我可以更好地格式化这个,但这应该适用于您正在寻找的概念。
循环电子邮件结果集。
<tr class="email_unread"><td><img class="email" id="email_id_'.$email_id.'" /></td><td> '.$email_subject.' </td></tr>
您可以将该课程设置为email_read或email_unread,具体取决于是否已阅读该电子邮件。 if($ email_read = 1)$ css =“email_read”; else $ css =“email_unread”;
使用jQuery执行Dirty Work。
<script type="text/javascript">
$(document).ready(function() {
$("img.email").click(function(){
$.get("emailRead.php", { id: $(this).attr("id") } );
$(this).parent().parent().removeClass('email_unread').addClass('email_read');
});
});
</script>
这将是emailRead.php
connect_db(); // CONNECT TO DB
$id = $_GET['id'];
$id = str_replace("email_id_","",$id);
$query="UPDATE email SET email_read = 1 WHERE email_id = '$id'";
$getResults=mysql_query($query) or die(mysql_error());
在这里你获取GET var,修剪email_id_部分以获取数字,然后在更新查询中使用它。当然,您必须对即将发布的电子邮件进行安全检查。阅读电子邮件地址。