我所拥有的是页面上的帖子列表,然后每个帖子都有一个图标可以添加到收藏夹(也有一个观看按钮,但它的工作原理与此完全相同)当点击它时,它会调用带有脚本的页面来添加这个帖子您在数据库中的收藏夹列表。(在使用 ajax 之前,我使用了一个 php 重定向,它返回到上一页)当页面被刷新时,数据库会检查您在收藏夹列表中的帖子,并将根据它是否在您的收藏夹列表中显示适当的图像.
当我单击链接时,它似乎做了它应该做的事情(转到页面并运行对数据库的更新查询),而不是刷新 div 它只是清除它。当我按 f5 刷新页面时,图像现在按应有的方式显示勾选的图像,因此当我单击并且 div 得到某种刷新时对数据库进行查询,但它需要适当的刷新才能显示。
echo '<div id = "favwatchbox'.$ID.'">';
if($_SESSION['Valid'] == "True" ){
$userid = $_SESSION['ID'];
$check= "SELECT * from UserFavoritePost WHERE UserID='$userid' AND PostID='$ID'";
$resultcheck = $db->query($check);
$num_resultcheck = $resultcheck->num_rows;
$checklater= "SELECT * from UserViewLaterPost WHERE UserID='$userid' AND PostID='$ID'";
$resultchecklater = $db->query($checklater);
$num_resultchecklater = $resultchecklater->num_rows;
$prelogin = $_SERVER["REQUEST_URI"];
if($num_resultcheck >= 1)
{
echo "<a id = 'favdel".$ID."' href='#'><img id='Fav' title='Favorited' src='images/site-design/Favoritecheck.png'></a>";
?>
<script>
$(function() {
$("#favdel<?echo$ID;?>").click(function(evt) {
$("#favwatchbox<?echo$ID;?>").load("sql-scripts/deletefavorite.php?post=<?echo $ID;?>&user=<?echo $userid;?>&pre=<?echo $prelogin;?>")
evt.preventDefault();
})
})
</script>
<?
}
else
{
echo "<a id = 'favadd".$ID."' href='#'><img id='Fav' title='Mark as Favorite' src='images/site-design/Favorite.png'></a>";
?>
<script>
$(function() {
$("#favadd<?echo$ID;?>").click(function(evt) {
$("#favwatchbox<?echo$ID;?>").load("phpincludes/markasfavorite.php?post=<?echo $ID;?>&user=<?echo $userid;?>&pre=<?echo $prelogin;?>")
evt.preventDefault();
})
})
</script>
<?
}
}
从收藏夹中删除的页面
<?php
include '../phpincludes/dbconnection.php';
$userid = $_GET['user'];
$postid = $_GET['post'];
$query = "DELETE FROM UserFavoritePost WHERE UserID='$userid' And PostId='$postid'";
$result = $db->query($query);
$presubmit = $_GET['pre'];
if($presubmit == "/myaccount.php")
{
header("location:".$presubmit."");
}
?>
我在从收藏夹 php 文件中删除时包含了一个 img src,现在当您单击它时会更新并更新图像,但是当我再次单击链接以重新添加到我的收藏夹时,它只会将我带到页面顶部。如果我刷新并单击它将运行添加脚本,但它仍然没有正确刷新 div