Выбор количества товара на странице в УК

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 7 марта 2013 в 09:37
Добрый день!
ICMS 1.10.1

ай нид хелп
Может кто реализовал у себя такое...
Делается для друзей-товарищей сайт по доставке еды по городу(суши, роллы и т.п)
По умолчанию Выбор количества товара в заказе можно сделать находясь непосредственно на странице "корзины"
Иллюстрация
Для удобства необходимо реализовать выбор кол-ва на страницах каталога
Иллюстрация
По нажатию на кнопки ± набирается нужное количество в <input>, затем жжмем на ссылку "в корзину" и товар добавляется в корзину соответственно
проблема в том, что не получается(не знаю как) передать переменную со значением из <input>



фрагмент файл шаблона.tpl
  1.  
  2. <div class="buy-pannel">
  3. <div class="number">
  4. <div class="minus"></div>
  5. <input id="tovarcount" name="tovarcount" class="counterorder" type="text" value="0" maxlength="2" max="20" />
  6. <div class="plus"></div>
  7. </div>
  8. <div class="addcartlink">
  9. <a class="link" type="submit" href="/catalog/addcart{$item.id}.html" title="{$LANG.ADD_TO_CART}">в корзину</a>
  10. </div>
  11. </div>
  12.  
фрагмент файл shopcore.php
  1.  
  2. function shopAddToCart($item_id, $tovarcount){
  3. $inCore = cmsCore::getInstance();
  4. $inDB = cmsDatabase::getInstance();
  5. $inUser = cmsUser::getInstance();
  6.  
  7. $user_id = $inUser->id;
  8. $sid = session_id();
  9. $can_many = $inDB->get_field('cms_uc_items', "id={$item_id}", 'canmany');
  10. $in_cart = shopIsInCart($item_id);
  11.  
  12. // временная заглушка,если не указано значение
  13. if ($tovarcount == 0 || !$tovarcount){
  14. $tovarcount = 1;
  15. }
  16.  
  17. shopCheckCarts();
  18.  
  19. if (!$in_cart){
  20. $sql = "INSERT INTO cms_uc_cart (user_id, session_id, item_id, pubdate, itemscount)
  21. VALUES ('$user_id', '$sid', '$item_id', NOW(), '$tovarcount')";
  22. $inDB->query($sql) ;
  23. }
  24.  
  25. if ($in_cart && $can_many){
  26. $sql = "UPDATE cms_uc_cart SET itemscount = itemscount + 1 WHERE item_id = ".$item_id." AND (user_id=$user_id OR (user_id=0 AND session_id='$sid'))";
  27. $inDB->query($sql) ;
  28. }
  29.  
  30. return true;
  31. }
  32.  
  33.  
фрагмент файла frontend.php
  1.  
  2. if ($do == 'addcart'){
  3. $tovarcount = $inCore->request('tovarcount', 'int');
  4. //$itemscount = 1;
  5. shopAddToCart($id, $tovarcount);
  6. $inCore->redirectBack();
  7. }
  8.  
фрагмент файла router.php
  1.  
  2. $routes[] = array(
  3. '_uri' => '/^catalog\/addcart([0-9]+)\/tovarcount([0-9]+).html$/i',
  4. 'do' => 'addcart',
  5. 1 => 'id',
  6. 2 => 'tovarcount'
  7. );
  8.  
#2 7 марта 2013 в 09:42
прошу прощения за опечатку в названии темы… редактировать ее к сожалению нельзя(или я не знаю как)
#3 7 марта 2013 в 11:39
Получилось с помощью JS
Может кому пригодится
  1.  
  2. //было
  3. <a class="link" type="submit" href="/catalog/addcart{$item.id}.html" title="{$LANG.ADD_TO_CART}">в корзину</a>
  4. //стало
  5. <a class="link" type="submit" href="JavaScript:add2basket('{$item.id}')" title="{$LANG.ADD_TO_CART}">в корзину</a>
  6.  
  1.  
  2. function add2basket(id){
  3. var URL;
  4. var k =document.getElementById("tovarcount_"+id);
  5. URL = '/catalog/addcart'+id+'/'+ k.value+'.html';
  6. newWindow = location.href = URL;
  7. }
  8.  
#4 7 марта 2013 в 11:42
закрываю свой монолог :)
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.