Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.01.2016, 23:00
Интересующийся
Отправить личное сообщение для melst Посмотреть профиль Найти все сообщения от melst
 
Регистрация: 26.11.2015
Сообщений: 28

Отображение результата работы скрипта на всех страницах сайта (корзина)
Здравствуйте.
Совсем запутался и опять нуждаюсь в помощи.

Делаю корзину для сайта. Задумал основную страницу корзины и блок "быстрой" корзины на jquery на каждой странице чтобы отображалась без перезагрузки при добавлении товара.
Вот впал в ступор как сделать, чтобы результат скрипта отображался на всех страницах сайта, а то при обновлении пропадает все.
Схема работы:
По нажатию кнопки "В корзину" некоторые параметры со страницы и id товара передаю в php обработчик, делаю выборку из БД и оттуда уже json'ом обратно на страницу.
Делать, чтобы при обновлении страницы или переходе скрипт опять срабатывал, а то скрипт срабатывает только после нажатия на кнопку?
Котел не варит сегодня уже... Помогите)))

Последний раз редактировалось melst, 12.01.2016 в 10:32.
Ответить с цитированием
  #2 (permalink)  
Старый 12.01.2016, 10:41
Интересующийся
Отправить личное сообщение для melst Посмотреть профиль Найти все сообщения от melst
 
Регистрация: 26.11.2015
Сообщений: 28

$result=mysql_query("SELECT product_name, char_diam, char_cell, product_price FROM product WHERE id=$id");
$arr=mysql_fetch_array($result);
$name= $arr['product_name'];
$str=array("name"=>$name);
echo json_encode($str, JSON_UNESCAPED_UNICODE);


function cartsuccess(data) {
            alert(data);
            var chars = JSON.parse(data);
            $('#cart_left').html(chars.name);
        }


как данные полученные функцией cartsuccess использовать вне события click() ? ajax отправляет запрос только по нажатию кнопки
Ответить с цитированием
  #3 (permalink)  
Старый 12.01.2016, 11:47
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

https://developer.mozilla.org/en/doc...sessionStorage

<div></div>
<script>
   // эмуляция AJAX запроса
  function someAwesomeAjaxFunction(cb) {
  	setTimeout(function() {
      cb('Some awesome response');
    }, 1000);
  }
  
  // Эта функция отвечает за вывод данных в нужный элемент
  function putSomeAwesomeData(injectTo) {
    //  Получаем данные из sessionStorage
    var data = sessionStorage.getItem('someAwesomeResponse');
    
    // Если данные  sessionStorage есть
    if (data) {
      // Добавляем данные из sessionStorage в необходимый элемент на странице
      injectTo.innerHTML = data;
      // выход из функции.
      return;
    }
    // Если данных в sessionStorage нет, то получаем их AJAX запросом.
    someAwesomeAjaxFunction(function(response) {
      // Добавляем полученные данные в необходимый элемент на странице
      injectTo.innerHTML = response;
      // Записываем данные в sessionStorage
      sessionStorage.setItem('someAwesomeResponse', response);
    });
  }
  
  putSomeAwesomeData(document.querySelector('div'));
</script>

Последний раз редактировалось Lemme, 12.01.2016 в 13:03.
Ответить с цитированием
  #4 (permalink)  
Старый 12.01.2016, 12:34
Интересующийся
Отправить личное сообщение для melst Посмотреть профиль Найти все сообщения от melst
 
Регистрация: 26.11.2015
Сообщений: 28

да, я смотрел в эту сторону, но засомневался в кроссбраузерности этого способа. Вы считаете, что с PHP в данном случае не связываться?
Ответить с цитированием
  #5 (permalink)  
Старый 12.01.2016, 12:58
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

Цитата:
но засомневался в кроссбраузерности этого способа
http://caniuse.com/#search=sessionStorage

Цитата:
Вы считаете, что с PHP в данном случае не связываться?
1) Проверяете есть ли данные в sessionStorage
2) Если данные есть, то выводите данные из sessionStorage
3) Если данных нет, то получаете данные AJAX запросом и записываете их в sessionStorage и выводите.

что непонятного в примере?

p.s добавил комментарии

При первой загрузке - получаем данные от сервера AJAX запросом.
При обновлении страницы - получаем данные из sessionStorage

Последний раз редактировалось Lemme, 12.01.2016 в 13:10.
Ответить с цитированием
  #6 (permalink)  
Старый 13.01.2016, 19:49
Интересующийся
Отправить личное сообщение для melst Посмотреть профиль Найти все сообщения от melst
 
Регистрация: 26.11.2015
Сообщений: 28

Разобрался. Но только если одна позиция в корзине.
Многомерный массив нужно делать , я так понял. В sessionStorage пытаться запихнуть или в json все пихать в php обработчике, а потом в скрипте парсить и проверять?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
background resize IceDvl jQuery 4 25.04.2014 17:54