2009-10-04 3 views
0

Я искал этот скрипт какое-то время. У меня есть некоторые правила, и у меня есть флажок, чтобы щелкнуть, если вы согласны с условиями и правилами.Установите флажок, если флажок установлен при отправке формы

Теперь, как сделать чек на PHP, если человек проверил это поле и согласился с правилами? Спасибо за помощь ур, я ценю это!

ответ

0

form.php:

<form action="checkbox-form.php" method="post"> 
    <label for="formWheelchair">Do you need wheelchair access?</label> 
    <input type="checkbox" name="formWheelchair" value="Yes" id="formWheelchair" /> 
<input type="submit" name="formSubmit" value="Submit" /> 
</form> 

Флажок-form.php:

if(isset($_POST['formWheelchair']) && 
$_POST['formWheelchair'] == 'Yes') 
{ 
    $wheelchair = true; 
} 
else 
{ 
    $wheelchair = false; 
} 
    var_dump($wheelchair); 

// сокращенная версия:

$wheelchair = isset($_POST['formWheelchair'])?true:false; 

Прямо из: http://www.html-form-guide.com/php-form/php-form-checkbox.html

Примечание: Позднее nt вы можете использовать сеансы для хранения данных для проверки на стороне сервера, если пользователь не указал во всех полях.

+1

-1 слишком много кода. isset() достаточно, флажок не входит в массив $ _POST, если он не выбран. $ wheelchair = false; if (isset ($ _ POST ['formWheelchair'])) {$ wheelchair = true; } – markus

+1

еще одно: переменное именование. «formWheelchair» недостаточно говорит. «wheelchairNeeded» будет лучшим названием. – markus

+1

Это глупое оправдание нисходящему, но что угодно. Я лично предпочитаю тщательные, длинные ответы, чем один лайнер. –

-1

В виде HTML:

<input type="checkbox" name="terms"> 

В PHP скрипт, что форма сообщения в:

if ($_POST['terms'] == 'on') { 

    echo 'User accepted terms'; 

} 
+1

Ваш код будет вызывать неопределенные индексы 'terms'. Как только форма отправляется, php не получает флажок, который не был проверен. истинный код будет, если (isset ($ _ POST ['terms'])) {///} - Krishna Kant Sharma 0 сек. назад –

+1

Он выкинет уведомление, а не ошибку. –

+0

Строго говоря, это сработает, если элементу флажка был присвоен атрибут value «on», поскольку проверяемое поле приведет к тому, что условие пройдет. Тем не менее, вы правы, заявляя, что оно также выдаст уведомление, которое не является самым изящным способом его обработки. Во многих случаях значение несущественно, и вам просто нужно проверить наличие. Однако значение становится значимым при настройке нескольких параметров с тем же именем, где вы получите массив выбранных параметров или для проверки переключателей, где вам нужно определить, какой вариант был выбран. – Rob

1

Если форма является формой метод POST. Затем на странице действия вы должны иметь доступ к переменной $ _POST.

Проверьте результаты этого на странице действий.

echo "<pre>"; 
print_r($_POST); 
echo "</pre>"; 

Переменная $ _POST будет массивом. Вы можете получить доступ к значению массива, как это.

if($_POST["key"] == "value") 

Если ключ является именем на выходе выше.

3

Предполагая, что у вас есть форма, которая выглядит примерно так:

<form method="post" action="some_handler.php"> 
    <label for="option1">Option 1</label> 
     <input id="option1" type="checkbox" name="option1" /> 
    <label for="option2">Option 2</label> 
     <input id="option2" type="checkbox" name="option2" /> 
    <!-- submit, etc --> 
</form> 

Вы можете проверить на наличие значений CheckBox (по имени) в $_POST, т.е.

<?php 
$optionOne = isset($_POST['option1']); 
$optionTwo = isset($_POST['option2']); 

Если коробки не отмечены, $_POST не будет содержать значений для них.

+0

+1 по причинам, указанным в других комментариях :-) – NickFitz

2

Это достаточно полностью, чтобы проверить:

$userAgrees = false; 

if (isset($_POST['myCheckbox'])) 
{ 
    $userAgrees = true; 
} 
+0

+1 для понимания того, что состояние включения/выключения флажков на клиенте отражается в них, там/нет на сервере :-) – NickFitz

Смежные вопросы