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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Вывод товара в корзине

Сообщения:  [1-10]    [11-20]   [21-30]   [31-40]   [41-50]  [51-58] 

 
 автор: confirm   (01.08.2014 в 18:07)   письмо автору
 
   для: arhat78   (01.08.2014 в 18:01)
 

Учиться надо было не на магазине, а на чем либо попроще. Магазин, это все-таки специфика, и решать придется много вопросов, и с нулевыми знаниями вряд ли что-то путнее можно сделать.
Мало мальски хороший магазин не может обойтись без Javascript, а для удобства покупателей желательно задействовать Ajax. А задействуя последнее, желательно продумать удобный для клиентских скриптов html-код, а он в свою очередь определяется как раз тем, что вы вкладываете в магазин - задачи, товары, их специфика, и т.д, и т.п..

  Ответить  
 
 автор: arhat78   (01.08.2014 в 18:01)   письмо автору
 
   для: confirm   (01.08.2014 в 17:58)
 

confirm, ну вы же так не серчайте на меня! Я же только учусь )))))) И благодарю за советы и указания - я верю, что вы плохого не посоветуете.

  Ответить  
 
 автор: confirm   (01.08.2014 в 17:58)   письмо автору
 
   для: arhat78   (01.08.2014 в 17:26)
 

Вы в реальном магазине когда либо были или нет? Вроде бы как уже говорили об этом - заставлять покупателя покупать мелочь по 1-й единице, ну это свинство как минимум.

В примере сделано ровно так, как вы и хотите - надо добавить в корзину, значит "пуляете" покупателя на какую-то голую страницу. Заказали, значит страница товаров будет отображать что товар в корзине и сколько его.

Но а надо ли вообще так, и удобно ли это? Нет конечно, и необходимости пулять покупателя куда-то для добавления совсем не требуется. Можно заказывать товары прямо на странице товаров, можно на любой другой странице где выводится товар. И для того чтобы отредактировать уже набранный, или еще добавить какой либо, тоже совсем не обязательно заходить в корзину. Для этого достаточно выводить не сообщение-ссылку "В корзине 1", а "В корзине" и далее поле ввода с количеством набранного, которое можно прямо на странице изменить, и эти изменения будет отображены в корзине. Можно и удалять.

В общем чем больше сервиса, тем лучше. Вы же наоборот не о сервисе думаете, а как выгодно вам, а вам выгодно то, что совсем неудобно будет для покупателей.

Мне в общем то все равно, как хотите, так и делайте. На главный вопрос ваш я дал ответ - это пример хранения набора товара с разными характеристиками в корзине, и как такой набор можно добавлять в нее.

  Ответить  
 
 автор: arhat78   (01.08.2014 в 17:44)   письмо автору
 
   для: confirm   (01.08.2014 в 17:39)
 

У меня страница корзины и страница заказа - идентичны. Разве что на странице заказа уже нельзя менять количество....

Буду разбирать в уме новую для меня конструкцию корзины.

  Ответить  
 
 автор: confirm   (01.08.2014 в 17:39)   письмо автору
 
   для: arhat78   (01.08.2014 в 17:28)
 

Вы странно подходите к структуре как корзины так и ее представления.
Не проблема написать и такую таблицу как вы написали, но в данном случае форма будет иная.
У вас один товар, а все остальное это его характеристики, так зачем их разбрасывать по форме?

А вот хранение товаров корзины в заказе, это уже будет именно построчно, собственно об этом я уже писал.

  Ответить  
 
 автор: arhat78   (01.08.2014 в 17:28)   письмо автору
 
   для: confirm   (01.08.2014 в 17:22)
 

Да? А я себе по другому вывод корзины представлял........ В каждой новой строчке отображается новый выбор....


Вот именно в таком виде код и выводится - то есть не работает. На выходных будет больше времени, попробую его по страницам и функциям разложить

  Ответить  
 
 автор: arhat78   (01.08.2014 в 17:26)   письмо автору
 
   для: confirm   (31.07.2014 в 15:02)
 

confirm, а может быть можно к этому вопросу по другому подойти? Если как-нибудь через проверку наличие данного размера сделать? Допустим в корзине уже лежит ботинок А с размером 21; вот выбираешь и добавляешь ещё один 21й размер: уже есть 21й размер, то прибавлять +1 количество; а вот если выбираешь и добавляешь ботинок А с 22м размером, то просто в корзину в новой строке выводить ботинок А с новым размером...?

  Ответить  
 
 автор: confirm   (01.08.2014 в 17:22)   письмо автору
 
   для: arhat78   (01.08.2014 в 17:14)
 

Потому, что эта колонка отображает размер модели и выбранное количество этого размера.
Удалить же из корзины можно либо целиком модель, либо только какой-то размер/размеры модели.

Что написано дальше - ничего не понятно. Что означает "у меня так выводится", а код из примера?

  Ответить  
 
 автор: arhat78   (01.08.2014 в 17:14)   письмо автору
 
   для: confirm   (31.07.2014 в 15:02)
 

А почему или зачем "Размер/Количество" в одной колонке?

И у меня в основном код выводится на странице магазина в таком виде: "$v) { //из корзины $bsk[$k]['size'] = array_diff_key($bsk[$k]['size'], array_flip($v)); //из редактируемых $ids[$k] = array_diff_key($ids[$k], array_flip($v)); } } } //добавление в корзину и обновление корзины foreach($ids as $k=>$v) { //добавляем товар в корзину if(!$bsk || !array_key_exists($k, $bsk)) $bsk[$k] = array('count'=>array_sum($v), 'price'=>$products[$k]['price'], 'size'=>$v); //изменяем товар в корзине else if(array_key_exists($k, $bsk)) { //изменяем количество по каждому из размеров foreach($v as $m=>$n) $bsk[$k]['size'][$m] = $n; //обновляем общее количество набранного товара $bsk[$k]['count'] = array_sum($bsk[$k]['size']); } } } //массив имитирующий таблицу товаров $products = array( 1 => array('name'=>'Модель 1', 'price'=>980), 2 => array('name'=>'Модель 2', 'price'=>1000), 3 => array('name'=>'Модель 3', 'price'=>1100), 4 => array('name'=>'Модель 4', 'price'=>1200), 5 => array('name'=>'Модель 5', 'price'=>1500), 6 => array('name'=>'Модель 6', 'price'=>850) );" и т.д.

Но буду разбирать; и может быть что-нибудь, да получится )))

  Ответить  
 
 автор: confirm   (31.07.2014 в 15:02)   письмо автору
 
   для: arhat78   (31.07.2014 в 11:05)
 

Это кажется, что сложно, и только возможно потому, что не знаете функций работы с массивами, которые в большем применяются.

Замените в JS коде строку:

this.checked ? p.append('<label>количество: <input type=text name=cnt['+this.name.match(/\d+/)[0]+'] value=1 /></label>') : p.children().last().remove();


на

this.checked ? p.append('<label>количество: <input type=text value=1 /></label>') : p.children().last().remove();
//а эти строки
//удалить поля количества при отправке 
$('#add').submit(function() { 
     $(this).find('input:text').remove(); 
});
//удалите вообще 


Изначально писалось под иной сценарий и так и осталось.

Что касается корзины и вашего вопроса "как", то ответ заключается в организации корзины, в функции подсчета ее основных параметров total_basket(), функции собственно работающей с корзиной set_basket: добавление, изменение, удаление.

Массивы $products, $size и $shoes_size - это имитаторы таблиц базы данных, для примера, чтобы понятно было сразу что, откуда и зачем.

Далее две конструкции выполняющие по условиям соответствующим (параметру GET запроса) соответственно прием формы добавления товара в корзину и формы редактирования корзины.

Все далее, это вывод товаров, самих форм, что организовано по условиям, чтобы не разбивать пример на несколько страниц как это может быть у вас.

Открывайте руководство РНР по указанным ссылкам, читайте код и о функциях которые в нем применяются. Изучайте их работу, уясняя на простых примерах.

Это что касается кода. А что касается как вам конкретно строить свой код, то я вам уже говорил неоднократно - так как в реальности, описывая свои реальные потребности и действия html структурой и код ее обслуживающий.

  Ответить  

Сообщения:  [1-10]    [11-20]   [21-30]   [31-40]   [41-50]  [51-58] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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