Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2011, 10:53   #1
Nekto_33
 
Регистрация: 06.07.2011
Сообщений: 9
Лампочка Корзинка добавления товаров ))

Здравствуйте. Помогите с реализацией простенькой корзинки. Может у кого есть скрипт?
Грубо говоря корзинка - это будет отдельный див, в который будет заноситься информация по выбранному товару при щелчке по кнопке "добавить в корзину" и эта информация должна сохраняться даже когда пользователь перезагрузит страницу, или перейдёт на другую (это реализуется сессиями, как я понимаю?)
Nekto_33 вне форума Ответить с цитированием
Старый 16.11.2011, 12:32   #2
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Это реализуется через ajax. (если по-нормальному)
При нажатии на кнопку посылается запрос на сервер с артикулом и кол-вом, на сервере записывается в бд, таблицу заказов, и... отправляется ответ в виде артикулов и кол-в товаров, выбранных данным пользователем. А вот определять пользователя, да можно через сессии, можно через куки.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 16.11.2011, 13:40   #3
Nekto_33
 
Регистрация: 06.07.2011
Сообщений: 9
По умолчанию

У Вас нет примера работы этого скрипта? Если есть возможность загрузить в архиве его на файлобменник какой-нить? У меня остаётся проблема с определением пользователя... Я всё же не могу определить пользователя для того, чтобы позиции сохранялись при перезагрузке страницы
Nekto_33 вне форума Ответить с цитированием
Старый 16.11.2011, 13:53   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Nekto_33 Посмотреть сообщение
У меня остаётся проблема с определением пользователя... Я всё же не могу определить пользователя для того, чтобы позиции сохранялись при перезагрузке страницы
Идентифицировать пользователя можно через сессии.

Показывайте ваш код - это единственный способ решить вашу проблему.

А готовых скриптов и инструкций по их написанию навалом в Google - только лучше разобраться с сессиями, и написать свой скрипт, именно под ваши задачи и параметры.
Andkorol вне форума Ответить с цитированием
Старый 16.11.2011, 19:19   #5
Nekto_33
 
Регистрация: 06.07.2011
Сообщений: 9
По умолчанию

На данный момент реализовал вот что (пока без базы данных, мне хотя бы на простых переменных понять работу).
Вот как реализуется html-форма для добавления в корзину:
Код HTML:
<form method="POST" action="add.php" class="addtocart"> 
Товар 1   
<input type="text" name="number" value="1" size="1"  />  шт. 
<input type="hidden" name="id" value="001"  />   <!-- Артикул --> 
<input type="hidden" name="product" value="Ботинки"  /> <!-- Название --> 
<input type="hidden" name="price" value="100" id="price" /> <!-- Стоимость --> 
<input name="button" type="submit" value="Отправить" /> 
</form> 

<form method="POST" action="add.php" class="addtocart"> 
Товар 2   
<input type="text" name="number" value="1" size="1"  />  шт. 
<input type="hidden" name="id" value="002"  />   <!-- Артикул --> 
<input type="hidden" name="product" value="Сандали"  /> <!-- Название --> 
<input type="hidden" name="price" value="200"  /> <!-- Стоимость --> 
<input name="button" type="submit" value="Отправить" /> 
</form>  
<br />

<div id="results">Вы выбрали: <?echo $_SESSION['product']?></div>
Вот принимающий php-обработчик:
PHP код:
session_start();
if (isset(
$_POST['number'])) {$number $_POST['number'];}
if (isset(
$_POST['id'])) {$id $_POST['id'];}
if (isset(
$_POST['product'])) {$product $_POST['product'];}
if (isset(
$_POST['price'])) {$price $_POST['price'];}
$newprice $price*$number;
$_SESSION['product'] = $product
И вот js:
Код HTML:
$(document).ready(function() {

$(function() { 
    $("form.addtocart").submit(function(){
        $.post("add.php", $(this).serialize(), function(data){
        alert('Отправлено!')
        });
        
        return false;
    }); 
});  
        
}); 
В настоящий момент скрипт работает так: Нажимаем кнопку "Отправить" и ... ничего не происходит, только при обновлении страницы появляется выбранный товар. Если мы выберим другой товар, то первый исчезает, а второй на месте него появляется.
В идеале же хотелось, чтобы товары появлялись без перезагрузки страницы и добавлялись один за другим. Как это реализовать я не знаю, иба только начинаю изучать php... Я прикрепил ещё архив со своими файлами. Помогите.


И ещё каким способом реализовать удаление пунктов из этой корзины?

Пользуйтесь кнопкой правка. Модератор
Вложения
Тип файла: rar pr.rar (85.0 Кб, 8 просмотров)

Последний раз редактировалось dr.Chas; 16.11.2011 в 22:02.
Nekto_33 вне форума Ответить с цитированием
Старый 16.11.2011, 19:52   #6
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Nekto_33 Посмотреть сообщение
В идеале же хотелось, чтобы товары появлялись без перезагрузки страницы и добавлялись один за другим
Для этого в обработчике вместо $_SESSION['product'] = $product:
PHP код:
if(!empty($id) && !empty($product))
{
    
$_SESSION['product'][$id] = $product;
}

if(!empty(
$_SESSION['product']))
{
    
$products array_values($_SESSION['product']);
    echo 
'Вы выбрали: ' implode(', '$products);// эта строка будет передана обратно

В js после/вместо alert('Отправлено!'):
PHP код:
$('#results').text(data);// выводим переданную строку в div 
Цитата:
И ещё каким способом реализовать удаление пунктов из этой корзины?
На странице оформления заказов делаете форму с чекбоксами "удалить" напротив каждого товара.
Или просто размещаете напротив товара условный знак "удалить", на клик по которому через jquery ($.post) идет запрос в обработчик на удаление выбранного элемента из массива $_SESSION['product'], по ID продукта.
Удаление элемента из массива - unset($_SESSION['products'][$id]); - $id это ID элемента(продукта), который вы хотите удалить из корзины.
Andkorol вне форума Ответить с цитированием
Старый 17.11.2011, 12:49   #7
Nekto_33
 
Регистрация: 06.07.2011
Сообщений: 9
Лампочка

Спасибо. Осталась только проблема с обновлением страницы - в диве выводится просто надпись "Array". Может получать данные не в массиве, а в обычной переменной? Можно вообще такое реализовать?
Я бы просто эту переменную брал и подставлял в тот див, который бы захотел, соответственно, появлялась бы возможность редактировать оформление и надписи корзины.
Там же ещё будет не только наименование, но и получившаяся цена ($newprice).
Если не трудно, подскажите в какое место кода вставлять данную реализацию.
(p.s. я сам верстальщик и в коддинг особо не лезу, поэтому извиняюсь за столь, может быть, глупые вопросы)...

Последний раз редактировалось Nekto_33; 17.11.2011 в 12:53.
Nekto_33 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Модуль YML загрузки товаров marsaleru Фриланс 2 11.01.2011 11:54
Фото-каталог товаров в Excel Fellow Microsoft Office Excel 7 19.10.2010 23:22
Записи в паскале. Экспорт товаров Dzhem Помощь студентам 0 19.05.2010 16:36
Доставка товаров Dostanu Dostanu Компьютерное железо 0 09.04.2010 18:13
Скрипт каталога товаров mikle1980 Фриланс 1 03.02.2010 19:23