InstantShop. Корзина. Как сделать нормальный вывод?

(склейка одинаковых товаров, лишние копейки, заметные скидки)

#31 26 января 2018 в 20:34

Так почему то не передает value

Bubble Gumoff

el.parent().find('select...')

Судя, по приведённому далее коду, у родителя "el" (.add_cartB) нет таких потомков. Попробуйте подняться повыше.
Вроде б так доберётесь до нужного селекта:
  1.  
  2. el.closest('.price_table').find('select...')
  3.  
#32 26 января 2018 в 20:55
  1. $(this).parents('price_table').children("select[name=var_art_no]").val();
#33 26 января 2018 в 20:58


Так почему то не передает value

Bubble Gumoff

el.parent().find('select...')

Судя, по приведённому далее коду, у родителя "el" (.add_cartB) нет таких потомков. Попробуйте подняться повыше.
Вроде б так доберётесь до нужного селекта:
  1.  
  2. el.closest('.price_table').find('select...')
  3.  

Олег Васильевич я

дак вот оно как, я думал select и есть родитель, матчасть надо читать stuk

Олег вы мой спаситель, все как надо теперь работает, Спасибо за помощь!!! dance
#34 26 января 2018 в 21:07


  1. $(this).parents('price_table').children("select[name=var_art_no]").val();

Loadырь

Спасибо Loadырь dance
#35 26 января 2018 в 21:18
По идее, самым быстрым вариантом будет:
  1.  
  2. $(this).closest('price_table').children("select[name=var_art_no]").val();
  3.  
#36 26 января 2018 в 21:29


По идее, самым быстрым вариантом будет:

  1.  
  2. $(this).closest('price_table').children("select[name=var_art_no]").val();
  3.  

Олег Васильевич я

Шикарно, работает dance, вот что получилось

  1.  
  2. var_art_no: el.closest('.price_table').children('select[name="var_art_no"]').val()
  3.  
#38 18 февраля 2018 в 11:56

traffs:
Спасибо мне тоже помогло! но теперь напротив товара вот это / NULL

А так попробуйте:
Код PHP:
$sql = "INSERT INTO cms_shop_cart (`session_id`, `item_id`, `var_art_no`, `qty`, `pubdate`, `chars`, `chars_hash`)
VALUES ('{$session_id}', '{$item_id}', '{$var_art_no}', '{$qty}', NOW(), {$chars_info}, '{$chars_hash}')";

Sam Hain

а так {$chars_info} вообще ничего не передает! так '{$chars_info}' хоть NULL выводит

Помогите, сбился с ног, никак довести до ума не могу, чтоб и обновлялось количество одинаковых товаров и товар с характеристиками передавался, почему то работает только либо одно либо другое.

Сейчас функция такого вида у меня, товар одинаковый обновляется, но в записях характеристик (массив ничего не передает) выводится /NULL в корзине.

  1.  
  2. public function addToCart($item_id, $var_art_no='', $qty=1, $chars=false) {
  3.  
  4. $session_id = session_id();
  5. $var_art_no = $var_art_no ? $var_art_no : '';
  6.  
  7. $chars_hash = is_array($chars) ? "'".md5(serialize($chars))."'" : 'NULL';
  8.  
  9.  
  10. $exists_id = $this->inDB->get_field('cms_shop_cart', "session_id='{$session_id}' AND item_id='{$item_id}' AND var_art_no='{$var_art_no}' AND chars_hash='{$chars_hash}'", 'id');
  11.  
  12.  
  13. if (!$exists_id){
  14.  
  15. $chars_info = array();
  16.  
  17. if ($chars){
  18.  
  19. foreach($chars as $id=>$value){ $chars_ids[] = $id; }
  20. $chars_ids = implode(',', $chars_ids);
  21.  
  22. $sql = "SELECT id, title FROM cms_shop_chars WHERE id IN ({$chars_ids})";
  23. $result = $this->inDB->query($sql);
  24.  
  25. if ($this->inDB->num_rows($result)){
  26. while($c = $this->inDB->fetch_assoc($result)){
  27. $chars_info[$c['id']] = $c['title'].': '.$chars[$c['id']];
  28. }
  29. $chars_info = $this->inDB->escape_string(implode(', ', $chars_info));
  30. }
  31.  
  32. }
  33.  
  34. $chars_info = $chars_info ? "'{$chars_info}'" : 'NULL';
  35.  
  36. $sql = "INSERT INTO cms_shop_cart (`session_id`, `item_id`, `var_art_no`, `qty`, `pubdate`, `chars`, `chars_hash`)
  37. VALUES ('{$session_id}', '{$item_id}', '{$var_art_no}', '{$qty}', NOW(), {$chars_info}, '{$chars_hash}')";
  38.  
  39. } else {
  40.  
  41. $qty = intval($qty);
  42.  
  43. $sql = "UPDATE cms_shop_cart SET qty = qty + {$qty} WHERE id = {$exists_id} LIMIT 1";
  44.  
  45. }
  46.  
  47. $this->inDB->query($sql);
  48.  
  49. return true;
  50.  
  51. }
  52.  
  53.  
#39 28 февраля 2018 в 23:23
За денежку может кто поможет решить 300р.
Сам чего то тут не допонимаю, надо решить без характеристик никак.
#40 1 марта 2018 в 18:14
все php знатоки перевелись? sad
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.