如何使用cookie实现动态内容的“保存”功能

时间:2012-01-16 14:52:43

标签: php jquery cookies

我想实现一个" save"功能,允许我的用户保存我从数据库中呈现给他们的特定条目。例如,如果他们看到他们喜欢的东西,他们可以按下" save"按钮,它将保存到"书签"页。

这是我的代码:

<?php 

// Get all the data from the example table
$result = mysql_query("SELECT * FROM table WHERE item <> 0 ORDER BY id") 
or die(mysql_error());  

// keeps getting the next row until there are no more to get
$i = 10; 
while ($i > 0) {  
    $i--;
    $row = mysql_fetch_array( $result );
    if ($row['id'] != "" ) { 
?>

<!-- Some content in this div-->
<div class="content"> 
<img  src="<?php echo $row['logo']; ?>"/>
<?php echo $row['id']; ?>
</div>

<!-- This div will have the save icon that users can press --> 
<div class="save">
<img  src="images/saveIcon.png" />
</div>

<?php }} ?>

<div class="bookmarked"> 
Every single div that is labled as "content" that has been saved, will be displayed here. 
</div>

问题:如何实现一项功能,允许用户将SQL(动态创建的内容)中的特定ID添加到cookie变量中,以便以后可以再现。

2 个答案:

答案 0 :(得分:1)

如果我已正确理解您的问题,您需要一个标记相关DIV的按钮,并将此关系存储到Cookie中。

首先,我会将条目的id作为类添加到DIV中。然后你就可以通过javascript轻松获取id(进一步的实现)。

要通过php设置收藏夹,您应该添加一个新的PHP脚本的链接。此脚本通过setcookie function in PHP设置Cookie。

在您的bookmarked-DIV中,您将使用与上面相同的while循环,但使用Cookie中的值检查ID。您可以使用$_COOKIE访问Cookie。只显示包含在Cookie中的项目。

这是一种可行的实施方式。

答案 1 :(得分:0)

您可能希望使用PHP将其存储在会话中而不是使用Javascript。

您只需将ID推送到会话变量即可实现此目的:

<?php
session_start();
if(isset($_GET['id']) && is_numeric($_GET['id'])){    
    $_SESSION['bookmarks'][] = intval($_GET['id']);
}

然后使用AJAX,您可以使用要添加书签的实体ID来点击此脚本,并将其保存到会话中。