Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проблемы с добавлением товаров в корзину

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: добавление товаров без перезагрузки страницы
Maha
Отправлено: 24 Декабря, 2013 - 09:13:29
Post Id


Новичок


Покинул форум
Сообщений всего: 55
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)




Пожалуйста, подскажите, как исправить способ добавления товара в корзину (без перезагрузки страницы).
1). В массиве $products хранятся product_id, product_title, product_image, product_price (вытащенные из базы):
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <?php foreach($products as $item):?>
  3.  


2).Далее вывод названия изображения и цены товара... Затем вывод "добавить в корзину":

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <a id="cart" data-id="<?php echo $item['product_id'] ?>"  style="cursor: pointer;">Добавить в корзину</a>
  3. <?php echo endforeach;?>
  4.  
  5.  


3).Теперь пытаюсь вытащить id товара:

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $(document).ready(function(){
  3.     $('#cart').click(function(){
  4.                 var id = $(this).data('id');
  5.         $.get(
  6.             'http://localhost/site_name/cart/'+ id,
  7.             function(data){
  8.                 $('#cart_res').html(data);              
  9.             }
  10.         );
  11.        
  12.         return false;
  13.     });
  14.  });
  15.  


Пожалуйста, подскажите, почему запрос срабатывает только при клике на первый товар на выводе (консоль: "GET http://localhost/site_name/cart/1 - 200 - OK - 9ms"), при клике на остальные товары вообще никакой реакции? И, по возможности, подскажите, как это исправить?

В изначальном коде, вместо product_id из цикла подставлялось url[1] из GET-a, куда отправлялся id товара. У меня так не получится, т.к., заказ может быть отправлен с разных страниц, например с главной страницы, где размещено несколько товаров. Мне никак не удается получить id в url без перезагрузки страницы...

(Отредактировано автором: 24 Декабря, 2013 - 09:33:41)

 
 Top
kotyara1979
Отправлено: 24 Декабря, 2013 - 09:55:58
Post Id


Частый гость


Покинул форум
Сообщений всего: 247
Дата рег-ции: Окт. 2012  


Помог: 7 раз(а)




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

(Отредактировано автором: 24 Декабря, 2013 - 09:57:27)



-----
Сделать можно все. Главное одеть каску.
 
 Top
SAD
Отправлено: 24 Декабря, 2013 - 09:59:33
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




id уникален.

сделайте так

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <a class="cart" data-id="<?php echo $item['product_id'] ?>"  style="cursor: pointer;">Добавить в корзину</a>
  3. <?php echo endforeach;?>


CODE (javascript):
скопировать код в буфер обмена
  1. ...
  2. $('.cart').click(function(){
  3. ...
  4. });
  5. ...
 
 Top
Maha
Отправлено: 24 Декабря, 2013 - 10:06:32
Post Id


Новичок


Покинул форум
Сообщений всего: 55
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)




Я просто не знаю как вас благодарить!!! ))))))))))))) Все работает!!!! СПАСИБО ОГРОМНОЕ!
SAD, kotyara1979 - Вы просто гении!!! СПАСИБО!

(Отредактировано автором: 24 Декабря, 2013 - 10:08:04)

 
 Top
Maha
Отправлено: 24 Декабря, 2013 - 15:53:55
Post Id


Новичок


Покинул форум
Сообщений всего: 55
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)




Если не очень сложно, помогите, пожалуйста еще с одним вопросом.
Как (по-научному) из двух таблиц выбрать в одном запросе:

Сначала из таблицы cat(cat_id, cut_url):
CODE (SQL):
скопировать код в буфер обмена
  1. $query1 = "SELECT cat_id, cut_url FROM cat WHERE cat_url =".$url[1];


Затем по полученному cat_id выбрать все из таблицы products:
CODE (SQL):
скопировать код в буфер обмена
  1. $query2 = "SELECT * FROM products WHERE products.product_cat_id=cat.cat_id && products.available= '1'";
 
 Top
esterio
Отправлено: 24 Декабря, 2013 - 16:04:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




JOIN
 
 Top
Maha
Отправлено: 24 Декабря, 2013 - 16:07:34
Post Id


Новичок


Покинул форум
Сообщений всего: 55
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)




Я попыталась так сделать:
CODE (SQL):
скопировать код в буфер обмена
  1. $query ="SELECT * FROM cat INNER JOIN products ON products.product_cat_id=cat.cat_id WHERE products.available= '1' &&  cat.cat_url =".$url[1];

Пишет - нет такого поля(((

Никак не соображу, куда мне этот сat_id переставить...

(Отредактировано автором: 24 Декабря, 2013 - 16:10:28)

 
 Top
kotyara1979
Отправлено: 24 Декабря, 2013 - 16:23:03
Post Id


Частый гость


Покинул форум
Сообщений всего: 247
Дата рег-ции: Окт. 2012  


Помог: 7 раз(а)




Maha пишет:
Я попыталась так сделать:
CODE (SQL):
скопировать код в буфер обмена
  1. $query ="SELECT * FROM cat INNER JOIN products ON products.product_cat_id=cat.cat_id WHERE products.available= '1' &&  cat.cat_url =".$url[1];

Пишет - нет такого поля(((

Никак не соображу, куда мне этот сat_id переставить...


а структура этих двух таблиц какая?


-----
Сделать можно все. Главное одеть каску.
 
 Top
Maha
Отправлено: 24 Декабря, 2013 - 16:29:06
Post Id


Новичок


Покинул форум
Сообщений всего: 55
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)




Cat_id - int - идентификатор категории
Cat_url - varchar - часть url, которая перебрасывает на эту категорию

Products_cat_ id - int, равный cat_id
Ну и другие поля, связанные с описанием товара.
Нужно по cat_url (из таблицы cat), которого в таблице products нет, определить cat_id(таблица cat) и сравнить его с product_cat_id в таблице products.

Я сейчас пытаюсь вложенным запросом выбрать.
(Добавление)
Странно. Когда в $url[1] передается цифра все работает:
CODE (SQL):
скопировать код в буфер обмена
  1. $query ="SELECT * FROM cat INNER JOIN products ON products.product_cat_id=cat.cat_id WHERE products.available= '1' &&  cat.cat_id =".$url[1];

Как только вместо cat_id = $url[1] пишу cat_url = $url[1] а в $url[1] передаю, например, 'elki_novogodnye', пишет " Warning: PDOStatement::execute(): SQLSTATE[42S22]: Column not found: 1054 Unknown column 'elki_novogodnye'".

(Отредактировано автором: 24 Декабря, 2013 - 16:45:32)

 
 Top
kotyara1979
Отправлено: 24 Декабря, 2013 - 23:02:36
Post Id


Частый гость


Покинул форум
Сообщений всего: 247
Дата рег-ции: Окт. 2012  


Помог: 7 раз(а)




Проверьте структуру и заполнение таблиц. Может у вас не правильно заполнение идет.

Maha пишет:
Как только вместо cat_id = $url[1] пишу cat_url = $url[1] а в $url[1] передаю, например, 'elki_novogodnye', пишет " Warning: PDOStatement::execute(): SQLSTATE[42S22]: Column not found: 1054 Unknown column 'elki_novogodnye'".


"elki_novogodnye" это строка. В запросе в кавычки ее заключаете? Судя по куску кода выше нет.

Выведите запрос перед исполнением, print $query;, и посмотрите, что вы отправляете. Возможные ошибки станут очевидными.

(Отредактировано автором: 24 Декабря, 2013 - 23:03:24)



-----
Сделать можно все. Главное одеть каску.
 
 Top
Maha
Отправлено: 25 Декабря, 2013 - 08:14:09
Post Id


Новичок


Покинул форум
Сообщений всего: 55
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)




kotyara1979 пишет:
Проверьте структуру и заполнение таблиц. Может у вас не правильно заполнение идет.

Maha пишет:
Как только вместо cat_id = $url[1] пишу cat_url = $url[1] а в $url[1] передаю, например, 'elki_novogodnye', пишет " Warning: PDOStatement::execute(): SQLSTATE[42S22]: Column not found: 1054 Unknown column 'elki_novogodnye'".


"elki_novogodnye" это строка. В запросе в кавычки ее заключаете? Судя по куску кода выше нет.

Выведите запрос перед исполнением, print $query;, и посмотрите, что вы отправляете. Возможные ошибки станут очевидными.


В кавычки не заключила!))) СПАСИБО! Исправила, все работает!)))

(Отредактировано автором: 25 Декабря, 2013 - 08:14:54)

 
 Top
Maha
Отправлено: 17 Января, 2014 - 18:16:14
Post Id


Новичок


Покинул форум
Сообщений всего: 55
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)




...

(Отредактировано автором: 17 Января, 2014 - 18:47:42)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB