2010-02-15 18 views

cevap

66

Onay kutusu işaretliyse, onay kutusunun değeri iletilecektir. Aksi halde, alan HTTP gönderisinde geçirilmez.

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

Bu, bir "onay kutusu" işaretliyse, işaretlenmemişse ve sonra form gönderildiyse işe yarar mı? –

+1

Evet, tarayıcı yalnızca, onay kutusunun tıklatıldığı, onay kutusunun işaretli veya işaretli denetimin kaç kez önemli olmadığı durumunu yalnızca onay kutusunun içinde gönderdiği durumu gönderir. –

+0

Teşekkür ederim. '' ASP.NET MVC' onu farklı ele alır, bu yüzden 'PHP'de benzer olsa da, öyle değil gibi görünüyor. :) –

6

deneyin bu

<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."; 
    } 
?> 

Ya da bu

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

Eğer

ya isset() veya empty() (onay açık isset) hava onay kutusu tarafından kontrol edilir olmadığını kontrol edemez veya

örneğin

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

Eğer

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

veya

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

tarafından kontrol edebilirsiniz size bir dizi yerine herkes için ayrı yazma yapabilir daha birçoğu için yapmak istiyorsanız yukarıda sadece bir kontrol edecektir onay kutusu gibi deneyin

<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

Sadece birden fazla onay kutusundan bir onay kutusunu işaretleyip veritabanına ekleyebilmeyi nasıl sağlar? 'tablonun içine ekle (seçim) VALUES ('$ aDoor')' –

+0

@AlKush radyo kutusunu kullan;) –

+0

Teşekkürler. Ve evet radyo butonlarını kullanmaya karar verdim. Ama bunu nasıl yapmalı? Örneğin. Kontrol edilmeyen üç radyo butonum var. Ancak kullanıcıya, bunlardan birini seçmeleri gerektiğini hatırlatmak isterim. –

2

sayfanızın sahiptir onay kutularını hangi bilmiyorsanız (örn: dinamik onları oluşturuyorsanız) basitçe aynı ad ve sağ Onay kutusunun üzerinde 0 değeri ile gizli bir alan koyabilirsiniz.

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

Bu şekilde, onay kutusunun seçili olup olmadığına göre 1 veya 0 alırsınız.

0

Çok kısa ellerini seviyorum:

$isChecked = isset($_POST['myCheckbox']) ? "yes" : "no"; 
İlgili konular