2013-06-27 36 views
0

我正在尋找一種方法來告訴用戶,他必須至少選中複選框,如果他沒有選擇任何複選框按下提交按鈕。通過使用php警告消息,該複選框未選中使用php

+0

這聽起來像JavaScript是你想要 – DFord

+0

你可以使用前端驗證,以達到更好的這很容易,也許不需要涉及服務器端腳本。 – raj

回答

1
<?php 

    if(isset($_POST['submit'])) 
    { 
     $checked=0; 
     for($i=0;$i<=2;$i++){//check all the boxes 
      if(isset($_POST['checkbox'.$i])) 
       $checked=1; 
     } 
    } 

    if ($checked==0){//alert if no boxes are checked 
     echo("You must check at least 1"); 
    } 
    else{ 
     header("location: nextpage.php"); 
    } 

?> 
<form name="form1" method="POST" action=""> 
     <input name="checkbox0" type="checkbox" value="1"> 1 
     <input name="checkbox1" type="checkbox" value="2"> 2 
     <input name="checkbox2" type="checkbox" value="3"> 3 
     <input name="submit" type="submit" value="Submit"> 
</form> 
+0

該代碼工作正常,但當我做出的行動等於另一個PHP頁面,它會帶我到這個網頁,即使我沒有選擇複選框。 – user2521365

+1

您應該將操作設置到此處理頁面,然後如果$ checked值爲0,請使用標題轉到您希望加載的頁面。 –

0

PHP發生在服務器上,在用戶看到頁面之前。用戶只能看到最終的渲染產品。您可以使用javascript來測試您的元素是在他們離開頁面之前被選中的,還是在下一頁處測試您的表單的處理位置。 (或者兩者都做,因爲JavaScript可以被用戶關閉。)

的JS,你正在尋找的開始是onsubmit(),也許document.getElementByID['the id of the input field'].checked

0

我會使用jQuery,這和做它像這樣。 ..

<form id="test" method="post" action="wherever.php"> 
<input type="checkbox" id="checkbox1" name="test" value="Checkbox1">Checkbox1 
<button id="formsubmit">SUBMIT</button> 
</form> 

然後在你的jQuery的,做

$('#formsubmit').click(function(e){ 
    e.preventDefault(); 
    if($("#checkbox1").is(':checked')){ 
    //on success 
    $('form#test').submit(); 
    } else { 
    //on no checkbox 
    alert('you need to check box'); 
    } 
    }); 

DEMO HERE

0

如果您在希望PHP,你可以這樣做:

<?php 
if(isset($_POST['SubmitButton'])) //checking if form was submitted 
{ 
    if(isset($_POST['test'])) //checking if button was checked 
    { 
    echo "Checkbox was checked!"; 
    } 
} 
?> 

<form action="" method="post"> 
<input type="checkbox" name="test" value="value"> 
<input type="submit" name="SubmitButton"/> 
</form> 

這將檢查是否提交表單或沒有,然後檢查是否複選框進行了調查。如果是這樣,那麼它只是迴應消息。很簡單。

希望這會有所幫助。

1

您可以使用@ JM-verastigue答案將用戶重定向到的頁面要:

if ($checked == 0){ 
// display alert 
} else { 
// redirect user 
}