Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Проблема с динамическими url (https://javascript.ru/forum/css-html/59695-problema-s-dinamicheskimi-url.html)

Vslav iv 23.11.2015 03:33

Проблема с динамическими url
 
Необходимо показывать модальное окно на странице товара только один раз.
Но беда в том, что url у меня вида /products.php?prod_id=7341
(который в htaccess преобразовывается в /horoshii-tovar-pr-7341.html)

Я использую jquery.cookie.js и код, где есть строка:
document.cookie = name + "=" + value + expires + "; path=/";

Естественно path=/ это для всех страниц, и подставить туда статическую
/stranica.php ума много не нужно.
Но с динамическими url, у которых в хвосте id= где постоянно меняются цифры
это не работает.
Помогите составить правильный универсальный path=.... для моего случая.
Заранее благодарен.

PS: Решение должно работать с любым товаром, не зависимо от номера ID

pnpquest 23.11.2015 03:47

Цитата:

Сообщение от Vslav iv
Но с динамическими url, у которых в хвосте id= это не работает.

Что не работает? Они не записываются в куки, или что?

Vslav iv 23.11.2015 04:07

В куки всё пишется, например:
/products.php?prod_id=/* (вот так я пробовал заносить)
Но это не работает, т к id у товаров разные.
А если я занесу в куку какой-то определённый ID,
то это будет работать только с одним товаром из тысячи,
а нужно с любым.
То есть открыл посетитель один раз любой товар - получил всплывающее окно.
Дальше, какой бы товар не открыл - ничего не увидит.

pnpquest 23.11.2015 04:11

Ну так окно надо поднимать по условию
if(!theUrlInCookies()) modalWindowOpen()

Причем тут запись в куки? В куках просто строка, любую хрень можешь туда засунуть.

Rise 23.11.2015 04:18

Цитата:

Сообщение от Vslav iv (Сообщение 397242)
Я использую jquery.cookie.js и код, где есть строка:
document.cookie = name + "=" + value + expires + "; path=/";

Не видно что используешь, document.cookie не есть jquery.cookie

Vslav iv 23.11.2015 05:00

Ещё раз попробую объяснить:
Код работает, проблема в том, что я не могу в правильном синтаксисе
записать динамический url в path=/. Чтобы кука с любым ID работала.
Других проблем нет.

Полный код тут (на всякий случай)
function setCookie(name, value, days) {
if (days) {
    var date = new Date();
    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
    var expires = "; expires=" + date.toGMTString();
}
else var expires = "";
document.cookie = name + "=" + value + expires + "; path=/products.php?prod_id=/*"; //не могу сюда правильно занести url
}
function getCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0) == ' ') c = c.substring(1, c.length);
    if (c.indexOf(nameEQ) == 0) 
        return c.substring(nameEQ.length, c.length);
}
return null;
}
setCookie('product', 'value', '31');

Rise 23.11.2015 06:15

Vslav iv,
document.cookie = name + "=" + value + expires + "; path=/horoshii-tovar-pr-";

laimas 23.11.2015 11:57

Цитата:

Сообщение от Vslav iv
"; path=/products.php?prod_id=/*"; //не могу сюда правильно занести url

Сюда и не надо никакого url, указывайте путь корневой папки документов, то есть "/", а домен = "." + domain.etc

Vslav iv 23.11.2015 13:49

laimas,
Всё, спасибо, сделал. Работает как нужно.


Часовой пояс GMT +3, время: 01:04.