Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как записать (прочитать) в (из) куки массив
 
 автор: Den*s   (28.11.2009 в 02:02)   письмо автору
 
 

Здравствуйте.
Как записать в куки массив, и потом прочитать её

function setCookie (name, value, expires, path, domain, secure) {
      document.cookie = name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
        alert("Товар добавлен а корзину");
}


в таблице несколько товаров (позиций), формируются вот так

<td background='images/fon_light.png'><input type='text' name='price[]' size='3' maxlength='3'></td>
        <td background='images/fon_light.png'>
        <input src='images/korzina.png' alt='добавить в корзину' title='добавить в корзину' type='image' 
         onclick='setCookie(\"id[]\", \"$id_temp\"); '>
        </td>


пытаюсь вывести все добавленные позиции, а возвращается id только последней

<?
$id 
$_COOKIE["id"];
 
 if (
$id)
  {
   foreach(
$id as $val)
    {
     print 
"$val <br>";
    }
  }
?>


как записать (прочитать) куки в id[]
получается неправильная функция на JavaScript?

  Ответить  
 
 автор: Trianon   (28.11.2009 в 02:08)   письмо автору
 
   для: Den*s   (28.11.2009 в 02:02)
 

значение cookie может хранить лишь строку.
Функцию на JS нужно переделать так, чтобы она добавляла очередной элемент, а не заменяла его.
На серверной стороне - разделять строку на ряд значений.

Но вообще-то в корзине помимо ключа имеется еще и количество заказанного товара.

  Ответить  
 
 автор: Den*s   (28.11.2009 в 02:15)   письмо автору
 
   для: Trianon   (28.11.2009 в 02:08)
 

Подскажите, а с точки зрения "правильности" (производительности) написания скрипта добавления товара в корзину, лучше использовать куки, или таблицу в базе?
Например при высокой посещаемости сайта ...

  Ответить  
 
 автор: sim5   (28.11.2009 в 04:58)   письмо автору
 
   для: Den*s   (28.11.2009 в 02:15)
 

С точки зрения "правильности" - база, с точки зрения оперативности - сесссия.
В cookies массив записывают предварительно преобразовав его в строку.
У кого будет отключен механизм cookies у того корзина не будет доступной.
Достаточно по тем или иным причинам очистить cookies, и корзина потеряна.

  Ответить  
 
 автор: AlexDIXI   (22.02.2011 в 17:31)   письмо автору
 
   для: Den*s   (28.11.2009 в 02:02)
 

Здравствуйте, у меня такая же задача на данный момент. Я ее решу гораздо проще. Буду использовать одну строку для куки, но с разделителями между айди. При добавление в куки проверять есть ли там уже данные, а если есть до извлекаю их оттуда добавляю разделитель и новый айди. Можно сделать еще проверку на кол-во товара, тоже все прост. Проверяем в строке куки айди если он найден, счетаем сколько раз он найден, и открываем в этой же строке спец скобки туда вносим айди и кол-во товара. Конечно удалив старые спец скобки или айди если товар был один. Ну а вывод еще проще. Думаю описывать не надо..

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования