Сохранение выбора страницы подгрузки
Здравствуйте.
Извиняюсь, но я в java несилен, поэтому прошу вашей помощи. Сделал подгрузку страницы в div, всё работает, всё хорошо. Но есть одна проблема. Есть модуль фильтрации по товарам на сайте, есть кнопка выбора валюты в грн. и евро. То есть при выборе евро подгружается страница с ценами товаров в евро и подгружается выбор диапазона цены в евро в модуль фильтрации. С этим проблем нет, всё работает идеально, но вот когда перехожу на следующую страницу, то обновляется сайт и загружается страница которая стоит первоочередной в подгрузке (то есть грн.) и отображается вторая страница с ценами в грн., а не в евро. Вот сайт, чтобы вы посмотрели и поняли о чем я. Так как не знаю, как подробней объяснить. http://etl.kl.com.ua/tehnika/ Можно ли как-то реализовать запоминание через куки? Или по другому сделать подгрузку контента. Пытался реализовать ajax переход по страницам, но не получается. Совсем тупой я в java. Собственно код вывода переключателя: <div class="source source-1">₴</div> <div class="source source-2">€</div> <div class="target target-1">цены в грн.</div> <div class="target target-2">цены в евро</div> Сам скрипт: var HIDDEN_CLASS_NAME = 'hidden' var TARGET_CLASS_NAME = 'target' var SOURCE_CLASS_NAME = 'source' var targetIdToShow = 1 function main() { var targets = getElements(TARGET_CLASS_NAME) var sources = getElements(SOURCE_CLASS_NAME) sources.forEach(function (sourceNode) { var sourceNodeId = extractId(sourceNode, SOURCE_CLASS_NAME) sourceNode.addEventListener('click', function () { showTarget(targets, sourceNodeId) }) }) showTarget(targets, targetIdToShow) } function getElements(type) { return [].slice.call(document.querySelectorAll('.' + type)).sort(function (targetNode1, targetNode2) { var target1Num = extractId(targetNode1, TARGET_CLASS_NAME) var target2Num = extractId(targetNode2, TARGET_CLASS_NAME) return target1Num > target2Num }) } function extractId(targetNode, baseClass) { var currentClassIndex = targetNode.classList.length while (currentClassIndex--) { var currentClass = targetNode.classList.item(currentClassIndex) var maybeIdNum = parseInt(currentClass.split('-')[1]) if (isNaN(maybeIdNum)) { continue } var classStrinToValidate = baseClass + '-' + maybeIdNum if (classStrinToValidate === currentClass) { return maybeIdNum } } } function showTarget(targets, targetId) { targets.forEach(function (targetNode, targetIndex) { var currentTargetNodeId = extractId(targetNode, TARGET_CLASS_NAME) if (currentTargetNodeId === targetId) { targetNode.classList.remove(HIDDEN_CLASS_NAME) } else { targetNode.classList.add(HIDDEN_CLASS_NAME) } }) } main() Буду очень признателен за помощь ) |
Выбранная пользователем валюта должна сохраняться в куках, а сервер при запросах должен отдавать страницу в той валюте, которая у пользователя в куках, в противном случае в валюте по умолчанию.
Можно вообще отдавать цены в двух валютах, тогда выбор валюты, это отображение цен в выбранной, без надобности запроса страниц. |
А как реализовать сохранение в куки для каждого параметра?
Можете дать ссылку на материал или подсказать куда копать? ) Буду признателен. Цитата:
|
Цитата:
|
Прошу прощение, имел ввиду значения, а не параметра... Туплю.
Сервер на PHP работает, сам сайт на DLE. Спасибо огромное, буду изучать данный Вами материал ) Цитата:
|
Цитата:
$current = (int)$_COOKIE["current"] ?: 1; Если запросом передается и выбор валюты, то установка куки, с одновременным присвоением запрошенного $current, которым и оперировать (в реальных скриптах своя переменная естественно). |
Благодарю :thanks:
Буду изучать и делать ) Цитата:
|
В общем как ни пытался, ничего не получается.
DLE не работает с PHP вставками на прямую. Как это всё организовать через js? Цитата:
|
Всем огромное спасибо!
Вопрос был решен благодаря рони А вот само решение (может кому-то пригодится): <script> window.addEventListener('DOMContentLoaded', function() { var indx = localStorage.getItem('indx'); [].forEach.call(document.querySelectorAll('.drop li'), function(item,i) { item.addEventListener('click', function() { localStorage.setItem('indx',i); }); if(i == indx) { jQuery(item).trigger('click') jQuery('.slct').text(item.textContent) } }); }); </script> |
Nik_Dev,
учите мат часть ... и код выше будут не нужен, а вот к тому что вам советовали про куки и сервер, прислушайтесь. |
Часовой пояс GMT +3, время: 18:46. |