我試圖爲我的網站創建一個小的「書籤」功能。用戶可以點擊 「.bookmarkButton」 將執行以下腳本:Array_Push未添加到陣列末尾,它正在替換整個陣列
<!--Add To Bookmarks-->
$(".bookmarkButton").click(function() {
var pid=$(this).closest('div').attr('id');
$('#noBookmark').hide();
$.post('bookmarks/addBookmark.php', 'rid=' + pid, function (addBookmark) {
$("#bookmarkResults").add(addBookmark);
});
});
這裏是 「addBookmark.php」 的代碼:)
<?php
在session_start(;
if (isset($_SESSION['ridArray']) && count($_SESSION['ridArray'] > 0)){
addBookmark();
} else if (isset($_POST['rid']) && !isset($_SESSION['ridArray'])) {
$_SESSION['ridArray'] = array();
addBookmark();
}
function addBookmark() {
if (is_array($_SESSION['ridArray']) && isset($_SESSION['ridArray']) && isset($_POST['rid'])) {
array_push($_SESSION['ridArray'], $_POST['rid']); //push the id value from post to the session array
//$_SESSION['ridArrayClean'] = array_unique($_SESSION['ridArray']); //remove duplicates
print_r($_SESSION['ridArray']);
foreach($_SESSION['ridArray'] as $x) {
// Get all the data from the "example" table
$result = mysql_query("SELECT * FROM example WHERE id = $x")
or die(mysql_error());
$row = mysql_fetch_array($result);
echo $row['productname'];
}}}
?>
變量$_SESSION['ridArray']
包含所有已經積累的id的數組。
我的問題是,這個腳本只有當一個項目書籤。如果有多個產品加入書籤,我只會獲取最後加入書籤的產品名稱,而不是每個我已添加書籤的產品。
因此,例如,在單擊bookmarkButton類之後獲取多個產品ID,如下所示:0,1,2,3在數組中。我只得到最後點擊的那個,即6個。
我一直在尋找這一點,現在我似乎無法看到我做錯了什麼。
請問您會自動啓動?我沒有看到session_start();這裏。 – Cheery 2012-01-28 08:01:21
會話開始位於頁面的開始處。我沒有把它列入這裏。 – tushar747 2012-01-28 08:05:30
試試我的答案中的代碼。 – Cheery 2012-01-28 08:21:15