我试图为我的网站创建一个小的“书签”功能。用户可以点击 “.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