Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.09.2016, 07:39
Новичок на форуме
Отправить личное сообщение для Zzaj Посмотреть профиль Найти все сообщения от Zzaj
 
Регистрация: 27.09.2016
Сообщений: 4

Отправка на страницу оплаты после отправки данных заказ в БД
Приветствую!

Пытаюсь сделать автоматическое перенаправление на страницу оплаты после подтверждения заказа и отправки данных в БД. Делаю так:
<form method="post" id="orderform" action="">
//данные пользователя для оформления заказа
</form>
<form method="POST" id="yaform" action="https://money.yandex.ru/quickpay/confirm.xml">
//данные для оплаты заказа
</form>
<input type="button" id="submiter" value="Подтвердить" onclick="submit_order();"> // кнопка отправки форм


<script>
    function submit_order(){
        var input = document.getElementById('phone').value;
        if (input.length){
                var submit_total = calc();
                if (submit_total == 0){
                    alert ('Спасибо, ваша заявка принята.');
                    $('#order').trigger ('click');                   
                if (submit_total !== 0){
                    if (confirm("Спасибо за заказ, сейчас вы будете переадресованы на страницу оплаты.")) {
                        $('#order').trigger ('click');
                        $('#yasubmit').trigger ('click');
                        }
                    else {
                        }
                }                    
        }
        else{
            alert ('Пожалуйста, укажите номер телефона.');
        }
    }
</script>


Если оставить какой то один триггер, то срабатывает нормально.
Но если 2 подряд, срабатывает только 2-й. Уже голову сломал. Может я вообще в корне не так пытаюсь реализовать?
Ответить с цитированием
  #2 (permalink)  
Старый 27.09.2016, 10:23
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Вы к чему показываете часть кода форм, которые к коду отношения не имеют: id="orderform" и id="orderform", а в обработчике $('#order'), $('#yasubmit'). Это что попытка поочередной отправки форм с одной страницы или что? И почему форм две?
Ответить с цитированием
  #3 (permalink)  
Старый 27.09.2016, 12:13
Новичок на форуме
Отправить личное сообщение для Zzaj Посмотреть профиль Найти все сообщения от Zzaj
 
Регистрация: 27.09.2016
Сообщений: 4

Прошу прощения, что ввел в заблуждение. Вот правильный код:

<form method="post" action="">
//данные пользователя для оформления заказа
<input type="submit" id="order" name="order" value=""> //скрыто
</form>
<form method="POST" action="https://money.yandex.ru/quickpay/confirm.xml">
//данные для оплаты заказа
<input type="submit" id="yasubmit" value=""> //скрыто
</form>
<input type="button" id="submiter" value="" onclick="submit_order();"> // кнопка отправки форм


И да, это попытка отправки 2 форм с одной страницы. Сначала данные заказа в базу, следом редирект на страницу оплаты.

Последний раз редактировалось Zzaj, 27.09.2016 в 12:17.
Ответить с цитированием
  #4 (permalink)  
Старый 27.09.2016, 12:35
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Zzaj
И да, это попытка отправки 2 форм с одной страницы.
Нельзя отправить сразу две формы. Отправить можно сначала одну, обработать ее (а это переход по url), затем можно отправлять другую.
А значит двух форм обслуживающих одну задачу на странице быть не должно. Ну а по большому счету достаточно и одной формы.
Ответить с цитированием
  #5 (permalink)  
Старый 27.09.2016, 12:48
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Сообщение от Zzaj
Сначала данные заказа в базу, следом редирект на страницу оплаты.
Не надо так делать, это вызывает раздражение. Форма оплаты должна загружаться аяксом на ту же самую страницу, но самая мякотка, это когда оформление заказа делается с любой страницы, то есть еще раз аяксом. Если яндекс раздает свое API, то скорее всего по XMLHttpRequest все будет работать, или надо у них почитать, как оно должно работать.
Ответить с цитированием
  #6 (permalink)  
Старый 27.09.2016, 12:50
Новичок на форуме
Отправить личное сообщение для Zzaj Посмотреть профиль Найти все сообщения от Zzaj
 
Регистрация: 27.09.2016
Сообщений: 4

Ну почему же одну задачу, когда их (задач) две? Сначала данные заказа улетают в базу, а потом идет обработка формы оплаты, в которой указана сумма с учетом доставки и, собственно, оплата.

Другого способа к сожалению придумать не смог и в сети не нашел. К тому же, на сколько я знаю, объеденить эти формы не получится, да и не надо.
Ответить с цитированием
  #7 (permalink)  
Старый 27.09.2016, 12:50
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

С редиректом туда же - в ответ кассы. То есть в БД следует заносить то, что оформлено. Яндекс должен ответить - по этому ответу заносите данные в свою базу. Иначе в БД будут ни разу не оплаченные заказы. Юзер просто закроет страницу оплаты, а ты уже посчитал его.
Ответить с цитированием
  #8 (permalink)  
Старый 27.09.2016, 12:52
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Сообщение от Zzaj
Сначала данные заказа улетают в базу, а потом идет обработка формы оплаты
С какого перепуга? Ну открылась страница оплаты, юзер взял и закрыл ее, досвидос.

Все наоборот. Читай документацию на яндекс-кассу. Я на 146% уверен, они формируют ответ, который можно запрограммировать, то есть калбек.
Ответить с цитированием
  #9 (permalink)  
Старый 27.09.2016, 12:57
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Кстати, это по-нашему. Верить, что человек не человек вовсе, а персонаж твоего собственного сценария. Лол. Да я сколько раз закрывал эти страницы, тупо пройти до конца, посмотреть как народ говнокодит.

Заносить в бд юзера до оплаты - это тоже интересно посчитать сколько было ваннаби. )))

Кроме того карта не проканала, денег не хватило, выбранный канал оплаты кукует и вообще забыл прикупить еще пару вилок, надо вернуться, добить в заказ. Понял? Выписанная счет-фактура - это бумажка, а не деньги.
Ответить с цитированием
  #10 (permalink)  
Старый 27.09.2016, 13:01
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

А еще такой прикол может быть. Тебе пришло из банка смс с паролем, а у тебя труба села, батарейка разрядилась внезапно. Ку-ку.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка данных формы AJAX`ом? Jopses jQuery 4 20.02.2013 12:34
Связать store и textfield'ы для отправки данных на сервер vladbrk ExtJS 6 16.10.2012 01:34
Помогите с передачей данных с формы на другую страницу Dimand (X)HTML/CSS 3 13.02.2011 11:14
Не работает кнопка отправки после загрузки Igor Shmigoff jQuery 2 29.12.2010 21:51
Проблема с дизайном после отправки xmlhttprequest, Проблема с дизайном после отправки cyberx AJAX и COMET 3 01.05.2010 17:07