2016-07-22 87 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(); 
    } 
});