【发布时间】:2017-07-27 03:04:45
【问题描述】:
我正在使用基于Laravel 和Twig 的OctoberCMS。
我正在尝试使用 1 个表单和 2 个提交按钮从 2 个 php 文件中调用 2 个不同的函数。
我将自己制作的组件Edit.php 和Delete.php 连接到一个页面。
我没有将表单操作定向到 /Edit.php,而是将其定向到当前 url,并使用处理程序通过编辑提交按钮调用 Edit.php 中的 php 函数 onEdit()。
在同一个表单中,如何使用删除提交按钮在Delete.php 中调用onDelete()?
它只选择 1 个处理程序并调用它的函数。
我无法将这两个函数合并到 1 个 php 文件中。
https://jsfiddle.net/t3t5e2Ln/
表格
<!-- Edit or Delete -->
<form method="POST" action="{{ url_current() }}" enctype="multipart/form-data">
<!-- Edit Handler -->
<input type="hidden" name="_handler" value="onEdit" />
<!-- Delete Handler -->
<input type="hidden" name="_handler2" value="onDelete" />
<!-- Title -->
<input type="text" name="title" maxlength="255" />
<!-- Edit Submit -->
<input type="submit" name="edit" value="Edit" />
<!-- Delete Submit -->
<input type="submit" name="delete" value="Delete" />
</form>
编辑.php
public function onEdit() {
//edit
}
删除.php
public function onDelete() {
//delete
}
【问题讨论】:
-
只用两种形式?对于非常简单的事情,这是一个不必要的复杂解决方案。两种形式,如果需要,适当地设计它们以保持您想要的外观。
-
@junkfoodjunkie 我现在正在使用两种表单来解决这个问题,但是我的布局设置方式,我无法使用 css 将两个提交按钮放置在彼此旁边.
-
为什么?无论布局如何,绝对没有什么可以阻止您根据需要重新排列这些提交按钮。但是,是的,无论如何,在同一个表单中拥有两个提交按钮绝不是明智之举,除非您采取预防措施来防止用户在表单中按下“Enter”。
标签: php html forms octobercms