仅在单击时发送SUBMIT按钮值

时间:2016-07-22 11:00:33

标签: php html forms request

我有以下网络表单:

<form action="processor.php" method="post">
  <input type="checkbox" name="cb" onclick="submit()">
  <input type="submit" name="search" value="Search">
</form>

因此,无论是单击提交按钮还是复选框,此表单都会提交到process.php页面。但提交的名称为&#34; search&#34;仅在明确单击按钮时发送,而不是在单击复选框时发送。出乎我意料。我希望用submit()命令提交表单也会发送所有参数(包括提交按钮&#34; s&#34; search&#34;参数)。 所以在PHP代码中我不能使用:

if(isset($_POST['search'])

测试表单是否已提交,我必须使用:

if($_SERVER['REQUEST_METHOD']=='POST')

这是提交按钮的正常行为吗?

2 个答案:

答案 0 :(得分:2)

是的,这是正确的行为。 提交输入的值仅在激活或单击时发送,因为您在此处通过其合乎逻辑的功能提交表单。

检查此示例:

<form action="edit.php" method="post">
  <input type="text" name="name">
  <input type="submit" name="action" value="Save">
  <input type="submit" name="action" value="Preview">
</form>

此行为允许在表单中进行多次提交操作。

__

在复选框上,单击模拟单击提交按钮而不是使用submit()

答案 1 :(得分:0)

是的,这是正常的。我为你做了一些代码让它工作:)。 在复选框和提交按钮中添加一个类。并将js代码添加到您的html或单独的js文件中。

<form action="processor.php" method="post">
  <input type="checkbox" class="checkbox" name="cb" onclick="submit()">
  <input type="submit" class="sub" name="search" value="Search">
</form>

当你单击复选框时它会进入这个功能,它会看到它何时启用,以及它是否模拟了点击提交按钮。

$(".checkbox").change(function() {
    if(this.checked) {
       $(".sub").click();
    }
});