2013-06-27 4 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 
} 
Смежные вопросы