我在刷新或注销后保持某些图像按钮的状态时遇到问题。我在页面上的每篇文章上都有一个收藏按钮,用户可以单击它来收藏它。我使用以下 jquery 函数将帖子的唯一 ID 发送到 mysql 表:
$('.faver').on('click',function() {
var articleId = $(this).closest('.row').attr('id');
$.ajax(
{
url: "favscript/addremove",
method: "POST",
data: { favourite: articleId },
success: function()
{
alert(<?php echo $favid ?>);
}
});
});
然后在接收的 php 文件中我得到这样的 session 变量:
session_start();
if(isset($_SESSION['id']) AND isset($_POST['favourite'])){
$user = mysql_real_escape_string($_SESSION['id']);
$_SESSION['favourite'] = $_POST['favourite'];
$favid = mysql_real_escape_string($_SESSION['favourite']);
然后我像这样将值插入到 mysql 表中:
// Firstly, check if article is favourite or not
$query = mysql_query("SELECT * FROM ajaxfavourites WHERE user=$user AND favid=$favid");
$matches = mysql_num_rows($query);
// If it is not favourited, add as favourite
if($matches == '0'){
mysql_query("INSERT INTO ajaxfavourites (user, favid) VALUES ('$user', '$favid')");
}
// Instead, if it is favourited, then remove from favourites
if($matches != '0'){
mysql_query("DELETE FROM ajaxfavourites WHERE user=$user AND favid=$favid");
}
}
现在以上所有方法都有效,但我的问题是我似乎无法找到一种方法让每个按钮在用户刷新或注销后记住其状态。如果我将 $favid 设置为 $_SESSION['favourite'],它将在刷新后将所有按钮的按钮状态设置为相同。
这是我检查按钮状态应该是什么的方式:
<!--Favourite Button-->
<div id="favouritediv">
<?php
$user = $_SESSION['id'];
$favid = $_SESSION['favourite']; // <- problem here
$query = mysql_query("SELECT * FROM ajaxfavourites WHERE user=$user AND favid=$favid");
$matches = mysql_num_rows($query);
if($matches == 0){
?>
<img id="button" class="faver fave0 tog" src= "favscript/images/0.jpg" onclick="" width="54" height="49">
<?php
}
if ($matches == 1) {
?>
<img id="button" class="faver fave0 tog" src= "favscript/images/1.jpg" onclick="" width="54" height="49">
<?php
}
?>
</div>
<!--Favourite Button END-->
如果我直接将 $favid 设置为文章的 ID,例如:$favid = 3;它会完美地工作,但我无法理解如何使用 $session 变量或可以分别获取每个按钮的文章 ID 并仅单独影响每个按钮的东西来正确地完成它。
我希望这是有道理的,我是 php 的新手,非常感谢任何有关如何执行此操作的帮助。
谢谢。
最佳答案
如果您希望即使在用户注销后仍能进行 session ,只需将登录事件存储在单独的表中即可。像用户 ID 和 session ID 列。最终得到事件表的最后一行。
编码愉快!
关于php - 如何在刷新后保持图像按钮状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31204508/