2016-07-22 78 views
0

时,我有以下的Web表单:只提交发送按钮点击价值

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

因此,无论点击提交按钮或表单提交到process.php页面复选框。但是,只有当按钮明确点击时,才会发送名为“搜索”的提交值,而不是单击复选框时发送。意外地对我来说。我期望用submit()命令提交表单也会发送所有参数(包括提交按钮的“搜索”参数)。 所以在PHP代码,我不能使用:

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

,以测试的形式提交,我必须使用:

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

是submitt按钮的这种正常行为?

+1

如果还可以使用if(!empty($ _ POST)){....} –

回答

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()

+0

好的,我可以这样做。我已经有了检查$ _SERVER全局变量的解决方案。所以那不是重点,我只是问这是否是正常的行为。 – sbrbot

+0

增加了一些关于行为的内容。 – Vuldo

+0

是的,我知道这一点,我使用多个提交按钮以相同的形式进行差异化操作。实际上,我使用

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(); 
    } 
});