php - Magento 2 - 如何将 phtml 文件中的输入值传递给阻止类?
问题描述
我正在尝试用我的自定义代码覆盖 Magento 模块块,包括 phtml 文件和 Block 中的 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
类中的函数,但它显示一个错误,指出文档未定义。
解决方案
将此代码添加到您的 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>
推荐阅读
- serialization - Hazelcast 的 DataSerializable writeData 和 readData 的序列化单元测试
- python - 无阻塞地服务单个 HTTP 请求
- winapi - 在什么情况下 RmGetList 为 lpdwRebootReasons 输出参数返回 2?
- ssh - GCP 连接失败 - SSH - 我们无法在端口 22 上连接到 VM
- javascript - 如何使用 Web 组件构建应用程序
- twilio - 致电我们团队中的代理(SIP 客户端),然后将他们连接到客户(PSTN 号码)
- javascript - Google Chrome 扩展程序 - 我如何计算被阻止的广告?
- vb.net - 如何在 Visual Basic 中使用数据集 TableAdapter 查询和选择记录
- javascript - 在 AdonisJS 中使用 API
- python - 如何将圆形应用于两个熊猫列