@Vutaly

Код для добавления в сравнение (закладки)?

Здравствуйте!
Есть необходимость добавления товара в закладки (сравнение).
Добавление/удаление происходит по средствам кода:
<?php
			//Закладки
			//Получаем закладки
			$in_bookmarks = false;//Флаг - данный товар добавлен в закладки
			$bookmarks = json_decode($_COOKIE["bookmarks"], true);
			if($bookmarks != NULL)//Есть закладки. Определяем - находится ли данный товар в закладках
			{
				if( array_search($product["id"], $bookmarks) !== false )
				{
					$in_bookmarks = true;
				}
			}
			if($in_bookmarks)//Этот товар в закладках
			{
				if($product["product_block_type"] == 6)//Страница закладок
				{
					?>
					<div class="product_div_bookmark">
						<a href="javascript:void(0);" onclick="removeBookmark(<?php echo $product["id"]; ?>, this);" title="Удалить из закладок">
						</a>
					</div>
					<?php
				}
				else//Для остальных страниц
				{
					?>
					<div class="product_div_bookmark">
						<a href="javascript:void(0);" onclick="remBookmark(<?php echo $product["id"]; ?>, this);" title="Удалить из закладок">
						</a>						
					</div>
					<?php
				}
			}
			else//Этого товара нет в закладках
			{
				?>
				<div class="product_div_bookmark">
					<a href="javascript:void(0);" onclick="addToBookmarks(<?php echo $product["id"]; ?>, this);" title="Добавить в закладки">
					</a>
				</div>
				<?php
			}
			?>


НО! при нажатии кнопки "добавить" не происходит обновление id товара из BD. система работает только при обновлении.
Код при загруженной страницы (для не добавленных):
function addToBookmarks(product_id, link)
			{
				//Получаем уже добавленные закладки
				var bookmarks = getCookie('bookmarks');
				if(bookmarks == undefined)
				{
					bookmarks = new Array();
				}
				else
				{
					bookmarks = JSON.parse(bookmarks);
				}
				
				bookmarks.push(product_id);//Добавляем закладку
				
				//Устанавливаем cookie (на полгода)
				var date = new Date(new Date().getTime() + 15552000 * 1000);
				document.cookie = "bookmarks="+JSON.stringify(bookmarks)+"; path=/; expires=" + date.toUTCString();
				
				bookmarksReview();//Переотображаем указатель закладок
				
				showAdded_bookmarks();//Показываем лэйбл "Добавлено"
				
				//Обрабатываем вызывающую ссылку
				link.innerHTML =  <span>В закладках</span>";
				link.setAttribute("onclick", "remBookmark(<?php echo $product["id"]; ?>, this);");
				link.setAttribute("title", "Удалить из закладок");
				link.blur();
		        }


Как изменить код, чтоб ID товара подтягиволось при изменении "onclick"?
Спасибо!
  • Вопрос задан
  • 169 просмотров
Пригласить эксперта
Ответы на вопрос 1
@ReFeRy
Не очень понятна проблема. После нажатия "добавить в закладки", появляется ссылка "удалить из закладок", но она не рабочая? Если проблема в этом, то ответьте на вопрос - js код функции AddToBookmarks вынесен в отдельный файл или содержится в теле html и генерируется из php?

link.setAttribute("onclick", "remBookmark(<?php echo $product["id"]; ?>, this);");

Хотя, в любом случае, вот в этой строке вам надо заменить вставку из php на переменную product_id, которая уже передана в функцию при вызове.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы