2010-02-15 26 views
43

如何在PHP中檢查checkbox是否被選中?如何查看選中哪個複選框?

+0

[http://www.html-form-guide.com/php-form/php-form-checkbox.html](http://www。 html-form-guide.com/php-form/php-form-checkbox.html)這包括複選框和複選框組。 – McAden

回答

66

如果複選框被選中,則複選框的值將被傳遞。否則,該字段不會在HTTP郵件中傳遞。

if (isset($_POST['mycheckbox'])) { 
    echo "checked!"; 
} 
+0

如果勾選了「複選框」,然後取消選中,然後表單被提交,這是否工作? –

+1

是的,瀏覽器僅發送複選框所在的狀態,當用戶單擊提交按鈕時,複選框被選中或未選中的次數無關緊要。 –

+0

謝謝。 'ASP.NET MVC'處理它不同,所以我認爲它在'PHP'中會類似,但看起來不是。 :) –

6

試試這個

<form action="form.php" method="post"> 
    Do you like stackoverflow? 
    <input type="checkbox" name="like" value="Yes" /> 
<input type="submit" name="formSubmit" value="Submit" /> 
</form> 
<?php 
    if(isset($_POST['like']) 
    { 
     echo "You like Stackoverflow."; 
    } 
    else 
    { 
     echo "You don't like Stackoverflow."; 
    } 
?> 

或者這

<?php 
    if(isset($_POST['like']) && 
    $_POST['like'] == 'Yes') 
    { 
     echo "You like Stackoverflow."; 
    } 
    else 
    { 
     echo "You don't like Stackoverflow."; 
    } 
?> 
27

您可以檢查通過任何isset()empty()(其檢查明確isset)天氣複選框被選中或不

例如

<input type='checkbox' name='Mary' value='2' id='checkbox' /> 

在這裏你可以通過

if (isset($_POST['Mary'])) { 
    echo "checked!"; 
} 

if (!empty($_POST['Mary'])) { 
    echo "checked!"; 
} 

檢查,如果你想爲許多人做的比你可以讓一個數組,而不是寫分開上述所有將檢查只有一個複選框嘗試像

<input type="checkbox" name="formDoor[]" value="A" />Acorn Building<br /> 
<input type="checkbox" name="formDoor[]" value="B" />Brown Hall<br /> 
<input type="checkbox" name="formDoor[]" value="C" />Carnegie Complex<br /> 

php

$aDoor = $_POST['formDoor']; 
    if(empty($aDoor)) 
    { 
    echo("You didn't select any buildings."); 
    } 
    else 
    { 
    $N = count($aDoor); 
    echo("You selected $N door(s): "); 
    for($i=0; $i < $N; $i++) 
    { 
     echo htmlspecialchars($aDoor[$i]). " "; 
    } 
    } 
+0

如何使它只能從多個複選框中選中一個複選框並將其插入到數據庫中? 'insert into table_name(choice)VALUES('$ aDoor')' –

+0

@AlKush改爲使用單選框;) –

+0

謝謝。是的,我決定使用單選按鈕。但如何使其成爲必需。例如。我有三個單選按鈕沒有被檢查。但我想提醒用戶,他們必須選擇其中之一。 –

2

如果你不知道哪些檢查框你的頁面有(例如:如果你是動態創建它們),你可以簡單地把一個隱藏字段具有相同的名稱和0值權複選框之上。

<input type="hidden" name="foo" value="0" /> 
<input type="checkbox" name="foo" value="1"> 

這樣,您將根據是否選中複選框來獲得1或0。

0

我愛缺人手如此:

$isChecked = isset($_POST['myCheckbox']) ? "yes" : "no"; 
相關問題