За последние 24 часа нас посетили 17507 программистов и 1673 робота. Сейчас ищут 1977 программистов ...

PHP и JS

Тема в разделе "PHP для новичков", создана пользователем epog333, 24 сен 2018.

  1. epog333

    epog333 Активный пользователь

    С нами с:
    8 мар 2010
    Сообщения:
    33
    Симпатии:
    0
    Всех приветствую, поставил на сайт скрипт корзины на JS, вот этот http://www.webmasters.by/articles/review-po/3477-wicart.html , разобрался со всеми товарами, теперь загвоздка, мне нужно передать в яндекс платёжку сумму из корзины, соответственно надо вставить в форму общую стоимость, но я не понимаю как этого сделать, какая переменная отвечает за вывод общей стоимости в корзине? И как её вставить в эту строку
    HTML:
    1.  <input type="hidden" name="sum" value="4568.25" data-type="number">
    , где "4568,26" и есть стоимость, помогите пожалуйста, время не ждёт
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.861
    Симпатии:
    752
    Адрес:
    Татарстан
    ... наглость - второе счастье (с)
     
  3. epog333

    epog333 Активный пользователь

    С нами с:
    8 мар 2010
    Сообщения:
    33
    Симпатии:
    0
    Не вижу здесь наглости, оффтоп ни к чему
     
  4. Mitai

    Mitai Новичок

    С нами с:
    23 окт 2016
    Сообщения:
    155
    Симпатии:
    24
    вам нужно в "сделайте за меня" или "фриланс"
     
  5. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.842
    Симпатии:
    652
    @epog333, PHP тут причем?
    --- Добавлено ---
    И что за древность! Вы реально собрались хардкодить товары на странице?
    Код (Javascript):
    1. var priceList = {
    2.     "001" : {"id" : "001", "subid" : {}, "name" : "IPhone 5", "price" : "20500"},
    3.     "002" : {"id" : "002", "subid" : {}, "name" : "IPad MINI", "price" : "10500"}
    4.     };
     
  6. epog333

    epog333 Активный пользователь

    С нами с:
    8 мар 2010
    Сообщения:
    33
    Симпатии:
    0
    А как мне иначе передать общую стоимость в корзине в платёжку Яндекса?
     
  7. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.842
    Симпатии:
    652
    Это никак не связано. Вы можете сформировать список на странице тем же пыхом или принять список отдельным запросом.
    --- Добавлено ---
    Или отправить общую стоимость на обработку пыхом.

    Т.е. если хардкодить, то все передается? Тогда в чем вопрос? :)
     
  8. epog333

    epog333 Активный пользователь

    С нами с:
    8 мар 2010
    Сообщения:
    33
    Симпатии:
    0
    Ничего не передается, мне нужно из скрипта JS вытащить число, которое запихнуть в переменную PHP либо напрямую передать, я не могу догнать как это сделать
     
  9. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.842
    Симпатии:
    652
    Передавайте напрямую. PHP тут ни при чем.
     
    #9 miketomlin, 24 сен 2018
    Последнее редактирование: 24 сен 2018
  10. epog333

    epog333 Активный пользователь

    С нами с:
    8 мар 2010
    Сообщения:
    33
    Симпатии:
    0
    Не могу разобраться как это сделать, весь день перед монитором просидел, ну совсем не разбираюсь в js
     
  11. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.842
    Симпатии:
    652
    Пишите в соотв. разделе с примерами кода и т.п. Может, и получите ответ. Но учтите, что это форум прежде всего для PHP-программистов.
     
  12. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Теоретически...
    Код (Javascript):
    1. document.querySelector("input[name='sum']").value = Object.values(priceList).map(item => item.price).reduce((a, b) => parseInt(a) + parseInt(b), 0)
     
  13. epog333

    epog333 Активный пользователь

    С нами с:
    8 мар 2010
    Сообщения:
    33
    Симпатии:
    0
    Не выходит :(
     
  14. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    что именно не выходит? у тебя всегда есть console.log() что б посмотреть результат
    priceList я не вникал где берется но тебе нужно его подставить.
    Если к нему нету доступа тогда ищи скорее всего в localStorage
     
  15. epog333

    epog333 Активный пользователь

    С нами с:
    8 мар 2010
    Сообщения:
    33
    Симпатии:
    0
    Я с JS не сталкивался вообще никогда в жизни, поэтому это тёмный лес для меня, я думал строку которую ты выдал можно просто вставить вот так
    Код (Text):
    1. <input type="hidden" name="sum" value="
    2. <script>
    3. document.querySelector("input[name='sum']").value = Object.values(priceList).map(item => item.price).reduce((a, b) => parseInt(a) + parseInt(b), 0);
    4.  
    5. </script>" data-type="number">
    по аналогии с php
     
  16. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Стоп.... Это как ты так умудрился?) Притом script должен быть в самом низу после инициализации priceList и input
    HTML:
    1. <input type="hidden" name="sum" value="" data-type="number">
    2. document.querySelector("input[name='sum']").value = Object.values(priceList).map(item => item.price).reduce((a, b) => parseInt(a) + parseInt(b), 0);
    3. </script>"
     
  17. epog333

    epog333 Активный пользователь

    С нами с:
    8 мар 2010
    Сообщения:
    33
    Симпатии:
    0
    Ну я просто говорю что вообще не понимаю как работает JS, я думал как в php просто echo $name ставишь между скобками и всё, твой код начал работать и передавать сумму на яндекс, только вот не ту, не могу понять почему, должно передаваться 340, а передается 8879 :(
     
  18. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Не вижу связи. открой исходных код и покажи var priceList ={...}
     
  19. epog333

    epog333 Активный пользователь

    С нами с:
    8 мар 2010
    Сообщения:
    33
    Симпатии:
    0
    Код (Text):
    1.  
    2.     <script>
    3. var priceList = {
    4.     "001" : {"id" : "001", "subid" : {}, "name" : "Пицца ЧЕТЫРЕ СЕЗОНА", "price" : "340"},
    5.     "002" : {"id" : "002", "subid" : {}, "name" : "Пицца ЧЕТЫРЕ СЫРА ", "price" : "340"},
    6.     "003" : {"id" : "003", "subid" : {}, "name" : "Пицца БАРБЕКЮ ПО-БОЛГАРСКИ ", "price" : "390"},
    7.     "004" : {"id" : "004", "subid" : {}, "name" : "Пицца ЧЁРНАЯ ЖЕМЧУЖИНА ", "price" : "549"},
    8.     "005" : {"id" : "005", "subid" : {}, "name" : "Пицца ЧИКЕН ЧИЗ ", "price" : "390"},
    9.     "006" : {"id" : "006", "subid" : {}, "name" : "Пицца ЦЫПЛЁНОК БАРБЕКЮ ", "price" : "440"},
    10.     "007" : {"id" : "007", "subid" : {}, "name" : "Пицца ДЕРЕВЕНСКАЯ ", "price" : "440"},
    11.     "008" : {"id" : "008", "subid" : {}, "name" : "Пицца МАРГАРИТА ", "price" : "350"},
    12.     "009" : {"id" : "009", "subid" : {}, "name" : "Пицца ДЖУЛЬЕТА ", "price" : "440"},
    13.     "010" : {"id" : "010", "subid" : {}, "name" : "Пицца ФРУКТОПИЦЦА ", "price" : "440"},
    14.     "011" : {"id" : "011", "subid" : {}, "name" : "Пицца ГАВАЙСКАЯ ", "price" : "440"},
    15.     "012" : {"id" : "012", "subid" : {}, "name" : "Пицца ГОВЯДИНА ЧИЛИ ", "price" : "440"},
    16.     "013" : {"id" : "013", "subid" : {}, "name" : "Пицца КУРИЦА ПО-ДИЖОНСКИ ", "price" : "390"},
    17.     "014" : {"id" : "014", "subid" : {}, "name" : "Пицца ГРИБОЕДОВ ", "price" : "440"},
    18.     "015" : {"id" : "015", "subid" : {}, "name" : "Пицца МИСТЕР ЧЕРРИ ", "price" : "390"},
    19.     "016" : {"id" : "016", "subid" : {}, "name" : "Пицца МЯСНАЯ ", "price" : "410"},
    20.     "017" : {"id" : "017", "subid" : {}, "name" : "Пицца ОХОТНИЧЬЯ ", "price" : "440"},
    21.     "018" : {"id" : "018", "subid" : {}, "name" : "Пицца ПЕППЕРОНИ ", "price" : "490"},
    22.     "019" : {"id" : "019", "subid" : {}, "name" : "Пицца ПРОВАНСКАЯ ", "price" : "390"},
    23.     "020" : {"id" : "020", "subid" : {}, "name" : "Пицца СИЦИЛИЯ ", "price" : "490"},
    24.     "021" : {"id" : "021", "subid" : {}, "name" : "Пицца С ТЕЛЯТИНОЙ И БРЫНЗОЙ ", "price" : "440"},
    25.  
    26.     };
    27. </script>  
    28. <script>
    29. var cart;
    30. var config;
    31. var wiNumInputPrefID;
    32.  
    33. $(document).ready(function(){
    34.  
    35.     cart = new WICard("cart");
    36.     cart.init("basketwidjet", config);
    37.    
    38.    
    39. });  
    40. document.addEventListener('visibilitychange', function(e) {
    41. cart.init("basketwidjet", config);
    42. }, false);
    43. </script>
    44. <style>
    45. a {
    46.     color: #f95428;
    47.     text-decoration:none;
    48.    
    49. }
    50. a:hover {
    51.     border-bottom: 1px dashed #f95428;
    52. }
    53. </style>
    54. <table style="width: 1000px; background-color: #333333; height: 33px; color: #fffdf2;">
    55. <tr>
    56. <td style="padding: 6px;">
    57. <div>
    58. <span>Корзина: </span>
    59. <a href="#" onclick="cart.clearBasket()" style="float: right;">Очистить корзину</a>
    60. <a href="#" id="basketwidjet" onclick="cart.showWinow('bcontainer', 1)"></a> <span style="font: normal 11px Arial"></span>
    61. </div>
    62. </td>
    63. </tr>
    64. </table>
    65.  
    66.  
    67. <div id="order" class="popup">
    68. <a href="#" onclick="cart.closeWindow('order', 0)" style="float:right"><img src="img/close.png" /></a>
    69. <h4>Введите ваши контактные данные</h4></p>
    70. <p><form id="formToSend" method="POST" action="https://money.yandex.ru/quickpay/confirm.xml">
    71. <input id="fio" type="text" placeholder="Ваши фамилия и имя"  class="" />
    72. <input id="adres" type="text" placeholder="Адрес (улица, дом, квартира)"  class=""/>
    73. <input id="phone" type="text" placeholder="Контактный телефон" class=""/>
    74. <input id="repost" type="text" placeholder="Ссылка на репост записи ВК" class="" />
    75. <input id="comment" type="text" placeholder="Комментарий к заказу" class="" />
    76. <input type="hidden" name="receiver" value="410016385345425">
    77. <input type="hidden" name="quickpay-form" value="shop">
    78. <input type="hidden" name="targets" value="Оплата заказа №381">
    79. <input type="radio" name="paymentType" value="AC">
    80. <input type="hidden" name="sum" value="" data-type="number">
    81. <script>
    82. document.querySelector("input[name='sum']").value = Object.values(priceList).map(item => item.price).reduce((a, b) => parseInt(a) + parseInt(b), 0);
    83. </script>
    84. <input type="submit" value="Отправить">
    85. </form>
    86.  
    87. </div>
    88.    
    89.    
    90.    
    91.    
    92.    
    93.    
    94.    
    95.    
    96.    
    97.    
    98.    
    99.    
    100.    
    101.    
    102.    
    103.    
    104.    
    105.    
    106.    
    107.  
    108.    
    109.     <div align="center">
    110. <table style="width:800px;font-family: Tahoma;border-spacing: 15px 10px;">
    111. <tr>
    112.  
    113.  
    114.  
    115.  
    116.     <td style="width: 290px;">
    117.     <img src="/pizza/4sezona.png"/>
    118.     <table style="width: 290px;"><tr><td style="font-weight: bold;">ЧЕТЫРЕ СЕЗОНА</td><td style="color: #ce1208; font-weight: bold;">340₽</td></tr><tr>
    119.     <td style="font-size: 11px;"><b>510 гр</b> 257,57 ккал/100 гр</td></tr><tr>
    120.     <td>Ветчина, грибы шампиньоны, перец болгарский, помидор, сыр моцарелла, соус майонезный. К пицце подается фирменный томатный соус.</td>
    121.     <tr><td>
    122.    <button style= "background: #fffdf2; border: 0px;" id="wicartbutton_001" onclick="cart.addToCart(this, '001', priceList['001'])"><img src="/img/buy.png"/></button>
    123.    
    124.    
    125.     </td></tr>
    126.     </tr></table>
    127.     </td>
    128.    
    129.    
    130.    
    131.    
    132.    
    133. </body>
    134. </html>
     
  20. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    @epog333 Ну видимо priceList это каталог а не выбранные товары. Ищи где товары. Зато теперь знаешь общую стоимость всей продукции 8879) Ну и еще parseInt на parseFloat заменить не помешает
     
  21. epog333

    epog333 Активный пользователь

    С нами с:
    8 мар 2010
    Сообщения:
    33
    Симпатии:
    0
    Всё равно ничего не могу поделать, ужас
     
  22. epog333

    epog333 Активный пользователь

    С нами с:
    8 мар 2010
    Сообщения:
    33
    Симпатии:
    0
    Сайт http://pizzaking45.ru (не реклама), может так ктонибудь сможет помочь
     
  23. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Код (Javascript):
    1. document.getElementById('bfooter').onclick = event => document.querySelector("input[name='sum']").value = parseInt(document.getElementById("bsum").innerText)
    Screen Shot 2018-09-25 at 00.02.02.png
     
  24. epog333

    epog333 Активный пользователь

    С нами с:
    8 мар 2010
    Сообщения:
    33
    Симпатии:
    0
    Да как так то, тупо копирую твой код и вставляю в index, у меня всё равно нет значение value
    [​IMG]
     
    #24 epog333, 24 сен 2018
    Последнее редактирование: 25 сен 2018
  25. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510