Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С Битрикс
Войти
Регистрация
Восстановить пароль
 
_marisha
7 / 7 / 2
Регистрация: 29.05.2011
Сообщений: 410
1

Создание заказа при клике на кнопку

31.07.2018, 12:57. Просмотров 438. Ответов 2
Метки нет (Все метки)

Доброго времени суток!
На сайте произведена настройка интеграции с банком покупки в кредит.
Для этого создана кнопка "В кредит" в карточке товара, при нажатии на которую открывается форма для заполнения заявки покупки в кредит (Создано с помощью API банка)
Также, необходимо при нажатии на кнопку "В кредит" создать новый заказ.
Подскажите, пожалуйста, каким образом возможно реализовать создание заказа при клике на кнопку "В кредит". Спасибо.

Добавлено через 2 часа 2 минуты
Вот примерный код создании заказа:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
global $USER;
                                $rsUser = CUser::GetByID($USER->GetID());
                                $arUser = $rsUser->Fetch();
                                $products = array(
                                    array(
                                        'PRODUCT_ID' => $arResult['ID'],
                                        'NAME' => $arResult['NAME'],
                                        'PRICE' => $arResult['PRICES']['Розничная']['DISCOUNT_VALUE'],
                                        'CURRENCY' => 'RUB',
                                        'QUANTITY' => 1
                                    )
                                );
                                $basket = Bitrix\Sale\Basket::create(SITE_ID);
 
                                foreach ($products as $product)
                                {
                                    $item = $basket->createItem("catalog", $product["PRODUCT_ID"]);
                                    unset($product["PRODUCT_ID"]);
                                    $item->setFields($product);
                                }
                                $order = Bitrix\Sale\Order::create(SITE_ID, $USER->GetID());
                                $order->setBasket($basket);
                                $shipmentCollection = $order->getShipmentCollection();
                                $shipment = $shipmentCollection->createItem(
                                    Bitrix\Sale\Delivery\Services\Manager::getObjectById(1)
                                );
                                $shipmentItemCollection = $shipment->getShipmentItemCollection();
 
                                foreach ($basket as $basketItem)
                                {
                                    $item = $shipmentItemCollection->createItem($basketItem);
                                    $item->setQuantity($basketItem->getQuantity());
                                }
                                $paymentCollection = $order->getPaymentCollection();
                                $payment = $paymentCollection->createItem(
                                    Bitrix\Sale\PaySystem\Manager::getObjectById(1)
                                );
 
                                $payment->setField("SUM", $order->getPrice());
                                $payment->setField("CURRENCY", $order->getCurrency());
 
                                $result = $order->save();
Есть кнопка
HTML5
1
2
3
4
5
6
7
<div class="form-group">
                                
                                <button type="submit" onclick="want_credit();return false;" name="submitIdentity" value="Button" style="background: #0a51ae;">
                                    <span><?=GetMessage("LIKEE_ESTORE_KUPITQ_V_CREDIT")?></span>
                                </button>
                            
                            </div>
На данный момент выполнение php кода происходит после обновления страницы.
Каким образом сделать так, чтобы при нажатии именно на кнопку происходило выполнение php кода? Спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.07.2018, 12:57
Ответы с готовыми решениями:

Вызвать включаемую область при клике на кнопку или ссылку
Как можно вызвать включаемую область для раздела при клике на кнопку или ссылку? Во включаемой...

Создание текст бокс с текстом при клике на кнопку
Собственно имеется кнопка, нужно заставить её создавать textbox в открывшейся форме, в текст боксе...

Создание элемента при клике на кнопку и последующее взаимодействие с ним
Подскажите, пожалуйста, есть ли возможность при клике на кнопку создавать новый элемент. В моем...

Не переходит при клике на кнопку
Здравствуйте. Сразу к делу. Имеется форма &lt;form action=&quot;https://vk.com&quot;&gt; &lt;input...

Событие при клике на кнопку
Здравствуйте! Столкнулась с проблемой... Нужно сделать, чтобы при нажатии на кнопку переменная...

2
Zvero
32 / 32 / 11
Регистрация: 02.05.2011
Сообщений: 154
31.07.2018, 16:35 2
Читайте принцип работы AJAX, в Вашем случае идеально подойдет.
0
_marisha
7 / 7 / 2
Регистрация: 29.05.2011
Сообщений: 410
01.08.2018, 06:07  [ТС] 3
Zvero, спасибо за наводку )
Можно сделать так (всё в одном файле php):
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
if (isset($_REQUEST['submitData']))
                            {
                                global $USER;
                                $rsUser = CUser::GetByID($USER->GetID());
                                $arUser = $rsUser->Fetch();
                                $products = array(
                                    array(
                                        'PRODUCT_ID' => $arResult['ID'],
                                        'NAME' => $arResult['NAME'],
                                        'PRICE' => $arResult['PRICES']['Розничная']['DISCOUNT_VALUE'],
                                        'CURRENCY' => 'RUB',
                                        'QUANTITY' => 1
                                    )
                                );
                                $basket = Bitrix\Sale\Basket::create(SITE_ID);
 
                                foreach ($products as $product)
                                {
                                    $item = $basket->createItem("catalog", $product["PRODUCT_ID"]);
                                    unset($product["PRODUCT_ID"]);
                                    $item->setFields($product);
                                }
                                $order = Bitrix\Sale\Order::create(SITE_ID, $USER->GetID());
                                $order->setBasket($basket);
                                $shipmentCollection = $order->getShipmentCollection();
                                $shipment = $shipmentCollection->createItem(
                                    Bitrix\Sale\Delivery\Services\Manager::getObjectById(1)
                                );
                                $shipmentItemCollection = $shipment->getShipmentItemCollection();
 
                                foreach ($basket as $basketItem)
                                {
                                    $item = $shipmentItemCollection->createItem($basketItem);
                                    $item->setQuantity($basketItem->getQuantity());
                                }
                                $paymentCollection = $order->getPaymentCollection();
                                $payment = $paymentCollection->createItem(
                                    Bitrix\Sale\PaySystem\Manager::getObjectById(1)
                                );
 
                                $payment->setField("SUM", $order->getPrice());
                                $payment->setField("CURRENCY", $order->getCurrency());
 
                                $result = $order->save(); 
                            }
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
$(document).ready(function(){
                                    $("submit").click(function(){
 
                                        $.ajax({
                                            type: 'POST',
                                            url: window.location.href,
                                            success: function(data) {
                                                alert(data);
                                                $("p").text(data);
 
                                            }
                                        });
                                    });
HTML5
1
2
3
4
5
6
7
                            <div class="form-group">
                                <form name="form1" method="post">
                                <button type="submit" onclick="want_credit();return false;" name="submitData" id="submitIdentity" value="Button" style="background: #0a51ae;">
                                    <span><?=GetMessage("LIKEE_ESTORE_KUPITQ_V_CREDIT")?></span>
                                </button>
                                </form>
                            </div>
В таком случае при нажатии на кнопку создается заказ, но не открывается форма want_credit() - это форма для оформления кредита, которая должна открывать по нажатию кнопки "В кредит".
Т.е. по нажатию на кнопку "В кредит" должен создаваться заказ и открываться форма.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.08.2018, 06:07

Событие при при клике на кнопку во второй форме
Привет ребята! Подскажите как реализовать - во второй форме, при нажатии на кнопку сохранить, в...

Добавить input при клике на кнопку
Здравствуйте ! Скажите пожалуйста, как при клике на кнопку добавить текстовое поле, а при обратном...

Запись в txt при клике на кнопку
Привет, Я хотел что бы при клике на кнопку, очистился файл txt и записался туда текст из формы, у...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru