Я попытался создать небольшую функцию закладок для моего сайта. Пользователи могут нажать на «.bookmarkButton», которая выполнит следующий скрипт:
<!--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']
содержит массив со всеми накопленными идентификаторами.
Моя проблема в том, что этот скрипт работает, только когда один элемент добавлен в закладки. Когда существует более одного продукта, отмеченного закладкой, я получаю только название продукта, которое было добавлено в последний раз, и не все, что я добавила в закладки.
Так, например, вместо получения нескольких идентификаторов продуктов после нажатия на класс bookmarkButton, например: 0,1,2,3 в массиве. Я получаю только ту, которая была нажата последней, т.е. 6.
Я уже давно смотрю на это и не могу понять, что я делаю неправильно.