Magento 2 - Как передать входное значение в файле phtml в класс блока? - PullRequest
0 голосов
/ 09 ноября 2019

Я пытаюсь перезаписать блок модуля Magento моим настроенным кодом, как в файле phtml, так и в классе php в блоке. В моем файле phtml я добавил поле ввода и хотел бы передать значение ввода в класс Block, чтобы иметь возможность использовать это значение для обновления базы данных.

Пока что яЯ создал кнопку и функцию onClick php, вызываемую кнопкой, но я понятия не имею, как передать входное значение этой функции. Я пытался использовать document.getElementById, но он не работает.

Функция php:

public function updatePayment($paidAmount)
{
    $currentPaid = $this->getSource()->getTotalPaid();
    $this->getOrder()->setTotalPaid($paidAmount + $currentPaid)->save();
}

ввод phtml-файла HTML:

<input id="update-payment-input" type="text" style="text-align:right;" value="<?= $block->setDefaultAmountForPayment() ?>">
<script>
    require(['prototype'], function() {
        document.getElementById("update-payment-submit").addEventListener("click", updateAmount);
        function updateAmount() {
            <?= $block->updatePayment() ?>
            // Here I tried to use document.getElementById to get the input value
        }
    });
</script>

Я ожидаю, что значение будет получено и передано функции в Blockкласс, но он показывает ошибку о том, что документ не определен.

1 Ответ

0 голосов
/ 12 ноября 2019

Добавьте этот код в ваш HTML-файл.

<input id="update-payment-input" type="text" style="text-align:right;" value="<?= $block->setDefaultAmountForPayment() ?>" onclick="updateAmount(this.value)">
<script>
    function updateAmount(value) {
        <?= $block->updatePayment(value) ?>
    }
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...