вернуть данные из php в форму

212
05 января 2018, 00:47

Есть такой form.php который собирает реквизиты,

<?php
$summ = $_POST['summ'];
$m_shop = '453441379';
$m_orderid = '1';
$m_amount = number_format($summ, 2, '.', '');
$m_curr = 'USD';
$m_desc = base64_encode('Test');
$m_key = 'Ваш секретный ключ';
$arHash = array(
    $m_shop,
    $m_orderid,
    $m_amount,
    $m_curr,
    $m_desc
);
$arHash[] = $m_key;
$sign = strtoupper(hash('sha256', implode(':', $arHash)));
?>

я $summ передаю аяйсом из index.php

$("#sub_but").click(function () {
    var summ = parseInt($("#summ").text());
    $.ajax({
        type: 'POST',
        url: 'form.php',
        data: {
            summ: summ
        },
    });
});

как вернуть эти данные обратно в форму в index.php после того как php отработает?

<form method="post" action="https://payeer.com/merchant/">
            <input type="hidden" name="m_shop" value="<?=$m_shop?>">
            <input type="hidden" name="m_orderid" value="<?=$m_orderid?>">
            <input type="hidden" name="m_amount" value="<?=$m_amount?>">
            <input type="hidden" name="m_curr" value="<?=$m_curr?>">
            <input type="hidden" name="m_desc" value="<?=$m_desc?>">
            <input type="hidden" name="m_sign" value="<?=$sign?>">
            <input type="submit" name="m_process" value="send" />
        </form>
Answer 1

form.php:

$summ = $_POST['summ'];
$m_shop = '453441379';
$m_orderid = '1';
$m_amount = number_format($summ, 2, '.', '');
$m_curr = 'USD';
$m_desc = base64_encode('Test');
$m_key = 'Ваш секретный ключ';
$arHash = array( // подготовьте массив к возврату в виде объекта json
    'm_shop'    => $m_shop,
    'm_orderid' => $m_orderid,
    'm_amount'  => $m_amount,
    'm_curr'    => $m_curr,
    'm_desc'    => $m_desc
);
$arHash['m_key'] = $m_key;
return json_encode($arHash); // верните данные туда, от куда послан запрос

index.html:

var $form = $('form#form input'); // форме дали id, что бы однозначно идентифицировать её
$("#sub_but").click(function () {
    var summ = parseInt($("#summ").text());
    $.ajax({
        type : 'POST',
        url  : 'form.php',
        data : {'summ' : summ},
        success: function(data) { // если ajax запрос ОК, data будет содержать $arHash
            $form.each(function(data) {
                // в цикле значения из data подавляются в соответствующие input
                // например, в input[name="m_shop"] подставится значение data['m_shop'] etc.
                $(this).val(data[$(this).attr('name')]);
            })
        }
    });
});
Answer 2

Не совсем понятно какие именно данные, ну сделать это можно вернув в json на view(js),предварив в PHP простой проверкой на аякс && post, а дальше в js, уже подменять полученные данные в нужные инпуты. Для этого нужно немного модицифировать ajax:

     $.ajax({
                type: 'POST',
                url: 'form.php',
                data: {
                    summ: summ
                },
                success: function(result) {
                    console.log(result);
                }
            });

в result будет то- что вы вернете с PHP

READ ALSO
Сократить кол-во цифр в PHP

Сократить кол-во цифр в PHP

Произвожу вычисление в PHP следующих чисел: 1999 / 15000 На выходе получаю 013326666666666667 Как остаток сократить до 6-ти чисел? чтобы на выходе вышло 0

226
sql запрос с приоритетом

sql запрос с приоритетом

как создать sql запрос так, чтоб, например, первые 12 товаров (из 24) выводились по условию top = 1 и затем все остальные товары?

227
Laravel и очереди

Laravel и очереди

Хотелось бы узнать подробнее про очереди в laravelЕсть 2 вопроса, оба на уровне джуниора, но всё же

245
CakePHP 3 два запроса на страницу?

CakePHP 3 два запроса на страницу?

Доку почитал, вроде норм, поставил ради интереса себе его посмотреть(раньше с ним не работал)Делал все по ману, все работает, но смущает то что...

215