0 Пользователей и 1 Гость просматривают эту тему.
  • 7 Ответов
  • 361 Просмотров
*

Lemonez

  • Осваиваюсь на форуме
  • 45
  • 0 / 0
Проблемы с формой
« : 16.04.2018, 22:38:32 »
Всем привет!
Есть такая форма в Яндекс Кассах:
<form action="https://money.yandex.ru/eshop.xml" method="post">
    <input name="shopId" value="1234" type="hidden"/>
    <input name="scid" value="4321" type="hidden"/>
    <input name="sum" value="746.47" type="hidden">
    <input name="customerNumber" value="abc000" type="hidden"/>
    <input name="paymentType" value="AC" type="hidden"/>
    <input name="orderNumber" value="abc1111111" type="hidden"/>
    <input name="cps_phone" value="+79123456543" type="text"/>
    <input name="cps_email" value="user@domain.com" type="hidden"/>
    <input name="ym_merchant_receipt" value='{"customerContact": "+79001231212","taxSystem": 1, "items":[{"quantity": 1.154, "price": {"amount": 300.23},  "tax": 3,"text": "Зеленый чай \"Юн Ву\", кг"},{"quantity": 2,     "price": {"amount": 200.00},  "tax": 3,"text": "Кружка для чая, шт., скидка 10%"},{"quantity": 0.3,   "price": {"amount": 1000.00}, "tax": 3,"text": "Предоплата 30%, настольная игра \"Tea Time\""}]}'
type="hidden"/>
    <input type="submit" value="Заплатить"/>
</form>

Как в поле "ym_merchant_receipt" в значение "customerContact" сделать добавления содержимого из поля "cps_phone" ? То есть, человек ввел в поле "cps_phone" свой телефон +79009999999 , и в поле  "ym_merchant_receipt" получилось customerContact: +79009999999.
*

Aleks.Denezh

  • Живу я здесь
  • 3367
  • 417 / 4
Re: Проблемы с формой
« Ответ #1 : 17.04.2018, 03:00:18 »
del
« Последнее редактирование: 04.05.2018, 22:02:06 от Aleks.Denezh »
*

Lemonez

  • Осваиваюсь на форуме
  • 45
  • 0 / 0
Re: Проблемы с формой
« Ответ #2 : 17.04.2018, 07:30:26 »
очень легко пример:
Код
 <input type="text" value='{"customerContact":"test"}' id="testVal">
    <script>
    jQuery(document).ready(function ($) {
            var data = JSON.parse($('#testVal').val());
            data.customerContact = 'лала';
            $('#testVal').val(JSON.stringify(data));
    });
    </script>
Все бы хорошо, но как теперь сделать тоже самое для нескольких параметров?
Вот готовая форма:
<div class="oplata2">
<div class="sppb-row-container">
<form action="https://money.yandex.ru/eshop.xml" method="post" target="_blank">
<div class="sppb-col-md-3 pull-left" style="padding-bottom:2%;padding-left:0;">
Тип взноса (<font color="red">*</font>):<br>
<select style="width:98%;" name="sum" >
<option value="1350">Марафон 1 350 руб.</option>
<option value="1080">Полумарафон 1 080 руб.</option>
</select>
  </div>
<div class="sppb-col-md-3 pull-left"style="padding-bottom:2%;padding-left:0;">
    Ваш номер телефона (<font color="red">*</font>):<br>
     <input  style="width:98%;height: 34px;" required name="cps_phone" value="" placeholder="   Укажите мобильный телефон..." id="tel" size="64"/>
<script>
   window.addEventListener("DOMContentLoaded", function() {
   function setCursorPosition(pos, elem) {
       elem.focus();
       if (elem.setSelectionRange) elem.setSelectionRange(pos, pos);
       else if (elem.createTextRange) {
           var range = elem.createTextRange();
           range.collapse(true);
           range.moveEnd("character", pos);
           range.moveStart("character", pos);
           range.select()
       }
   }
   function mask(event) {
       var matrix = "+7 (___) ___ ____",
           i = 0,
           def = matrix.replace(/\D/g, ""),
           val = this.value.replace(/\D/g, "");
       if (def.length >= val.length) val = def;
       this.value = matrix.replace(/./g, function(a) {
           return /[_\d]/.test(a) && i < val.length ? val.charAt(i++) : i >= val.length ? "" : a
       });
       if (event.type == "blur") {
           if (this.value.length == 2) this.value = ""
       } else setCursorPosition(this.value.length, this)
   };
       var input = document.querySelector("#tel");
       input.addEventListener("input", mask, false);
       input.addEventListener("focus", mask, false);
       input.addEventListener("blur", mask, false);
   });
     </script>
  </div>
<div class="sppb-col-md-3 pull-left" style="padding-bottom:2%;padding-left:0;">                  
     Ф.И.О. участника (<font color="red">*</font>):<br>   
     <input  style="width:98%;height: 34px;" required name="custName" placeholder="   Укажите Ф.И.О. ..." value="" size="64"/>
 </div>
<div class="sppb-col-md-3 pull-left" style="padding-bottom:2%;padding-left:0;">                  
     Ваш e-mail (<font color="red">*</font>):<br>   
     <input  style="width:98%;height: 34px;" required name="cps_email" placeholder="   Ваш e-mail ..." value="" size="64"/>
 </div>
</div>
<div style="padding-bottom:2%;text-align:center;display: inline-block;width:100%;"><input type="checkbox" disabled checked>  Разрешаю обработку персональной информации в соответствии с Федеральным законом РФ от 27.07.2006 N 152-ФЗ "О персональных данных"</div>
<input name="ym_merchant_receipt" value='{"customerContact": ,"taxSystem": 1, "items":[{"quantity": 1, "price": {"amount": 300.23},  "tax": 4,"text": "Оплата за участие в марафоне"}]}'
type="hidden"/>
<div style="text-align:center;">                 
<button class="btn2" type="submit">ОПЛАТИТЬ ВЗНОС</button>
</div>
     </form>
</div>

В ym_merchant_receipt надо чтобы в после  "customerContact": вставлялись данные, которые ввели в поле cps_phone т.е. номер телефона, а дальше сложнее:
в примере видно что отправляется информация о товарах, цене, скидке - надо чтобы товары (их 2 всего : <option value="1350">Марафон 1 350 руб.</option> и <option value="1080">Полумарафон 1 080 руб.</option>) взависимости от выбранного тоже автоматом проставлялись в ym_merchant_receipt
*

Lemonez

  • Осваиваюсь на форуме
  • 45
  • 0 / 0
Re: Проблемы с формой
« Ответ #3 : 17.04.2018, 08:02:27 »
Или может можно проще поступить:
нам надо отправить в ЯндексКассу параметр следующего содержания <input name="ym_merchant_receipt" value='{"customerContact": "Эл.почта" ,"taxSystem": 1, "items":[{"quantity": 1, "price": {"amount": 1},  "tax": 4,"text": "Оплата взноса за участие в марафоне"}]}'
type="hidden"/>
как добавить в этот же параметр поле для ввода эл.почты, которое видимо и соответственно, что ввели в это поле, то и отправилось в ym_merchant_receipt ?
*

Aleks.Denezh

  • Живу я здесь
  • 3367
  • 417 / 4
Re: Проблемы с формой
« Ответ #4 : 17.04.2018, 10:29:37 »
del
« Последнее редактирование: 04.05.2018, 22:02:02 от Aleks.Denezh »
*

Lemonez

  • Осваиваюсь на форуме
  • 45
  • 0 / 0
Re: Проблемы с формой
« Ответ #5 : 17.04.2018, 16:12:13 »
простите, но вам дали уже готовый пример, если вы не знаете основ программирования то лучше обратитесь в коммерческий раздел, и там напишут весь код за вас!
То что дали, не работает + непонятно как применить к существующей форме
*

Aleks.Denezh

  • Живу я здесь
  • 3367
  • 417 / 4
Re: Проблемы с формой
« Ответ #6 : 17.04.2018, 16:20:28 »
del
« Последнее редактирование: 04.05.2018, 22:01:57 от Aleks.Denezh »
*

Lemonez

  • Осваиваюсь на форуме
  • 45
  • 0 / 0
Re: Проблемы с формой
« Ответ #7 : 17.04.2018, 16:28:16 »
то что я дал прекрасно работает, я не даю непроверенный код!
Если не понятно как применять, то я хочу Вас огорчить, тут форум помощи, а не напишите за меня коммерческое приложения, а я буду бабки собирать...
Написал Вам в скайп, очень жду ответа...
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблемы с плавной загрузкой изображений (Lazy)

Автор Lemonez

Ответов: 0
Просмотров: 55
Последний ответ 10.10.2018, 23:01:12
от Lemonez
Проблемы с редактором

Автор Harryk89

Ответов: 2
Просмотров: 81
Последний ответ 25.09.2018, 12:12:15
от KKAAZZOO
Воспользоваться формой связи с другого сайта

Автор sergey-911

Ответов: 3
Просмотров: 222
Последний ответ 16.09.2018, 08:56:01
от ProtectYourSite
Ошибки на сайте при подключении модуля с формой обратной связи

Автор Dionis0.618

Ответов: 7
Просмотров: 265
Последний ответ 10.08.2018, 15:54:24
от fireman
Проблемы с таблицей

Автор Leo1986

Ответов: 4
Просмотров: 177
Последний ответ 20.02.2018, 14:20:43
от Leo1986