2012-01-16 87 views
0

我想實現「保存」功能,該功能允許我的用戶保存從數據庫中呈現給他們的特定條目。例如,如果他們看到他們喜歡的東西,他們可以按「保存」按鈕,它將保存到「書籤」頁面。如何使用cookie實現具有動態內容的「保存」功能

這裏是我的代碼:

<?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變量,因此它可以在以後再現。

+0

那麼你有問題嗎? – JAAulde 2012-01-16 14:56:54

+0

對不起 - 請參閱上面的說明。 – tushar747 2012-01-16 14:59:53

回答

1

如果我正確理解了你的問題,你需要一個標記相關DIV的按鈕,並將這個關係存儲到cookie中。

首先,我會將條目的id作爲類添加到DIV中。然後你就有可能通過javascript輕鬆獲得id(進一步實現)。

要通過php設置收藏夾,您應該添加一個鏈接到一個新的PHP腳本。該腳本通過setcookie function in PHP設置cookie。

在您的書籤式DIV中,您將使用與上述相同的while循環,但使用cookie中的值檢查ID。您可以使用$_COOKIE訪問cookies。只需顯示包含在Cookie中的項目。

這是一種可能的實施方式。

+0

這個解決方案看起來不錯,謝謝 - 我不敢相信我沒有想過! :)。當我試圖實現這一點時,我只是堅持一件事 - 如何在Cookie中設置數組?我試過這個:$ ridArray = array(); setcookie(「ridArray」,$ ridArray);但它不起作用。 – tushar747 2012-01-17 04:25:05

+0

每次我想使用它時,是否必須將我的數組轉換爲字符串並再次返回?還是有更簡單的解決方案? – tushar747 2012-01-17 04:28:47

+0

我不確定,但我想你必須序列化數組(http://de.php.net/manual/en/function.serialize.php),然後把它放入cookie中。 – Armin 2012-01-17 08:54:58

0

您可能想使用PHP將它存儲在它的會話中,而不是使用Javascript。

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

使用AJAX,那麼你可以打這個腳本與實體書籤的標識,它會得到保存到:

您可以通過簡單地推動ID到一個會話變量實現這一目標會話。

相關問題