刷新或注销后,我在保持某些图像按钮的状态时出现问题。我在页面上的每篇文章上都有一个最喜欢的按钮,用户可以点击收藏该按钮。我用下面的jQuery功能后的唯一ID发送到MySQL表:php - 刷新后如何保持图像按钮状态
$('.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 ?>);
}
});
});
然后在recieving PHP文件我得到的会话变量是这样的:
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");
}
}
现在所有上述工作,但我的问题是,我似乎无法想出一个办法为每个按钮记住它的状态,一旦用户刷新或L ogs出来。如果我将$ favid设置为$ _SESSION ['favorite'],它将在刷新后为所有按钮设置相同的按钮状态。
我这是怎么检查按钮的状态应该是什么:
<!--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和任何帮助,我应该这样做将不胜感激。
谢谢。
会议后得到用户刷新网页上删除了? – Thamaraiselvam