Regex Подтвердить Однобуквенный множественный выбор

Новый парень здесь — у меня есть три варианта, и я хочу, чтобы пользователь переходил на следующую страницу «4.html» только в том случае, если он выбрал «А», иначе отправьте их на google.com. Это где я дошел до сих пор 🙁

if(empty($_POST['choice'])){
echo "Please select at least one choice..!!";
//this should send them to google.com if they select none or the wrong one
}
else{
foreach($_POST['choice'] as $choice){
header('Location: /4.html');
}
}<form action="multichoice.php" method="post">
<input id="checkbox" type="checkbox" name="choice[]" value="A" />A&#x29;Choice A
<input id="checkbox" type="checkbox" name="choice[]" value="B" />B&#x29;Choice B
<input id="checkbox" type="checkbox" name="choice[]" value="c" />C&#x29;Choice C
<input id="input"onclick="return myFunction()"  type="submit" value="Submit"></input>
</form>

Я очень ценю помощь ваших парней!

0

Решение

Sidenote: вы не можете использовать echo и header вместе, иначе вы будете выводить перед заголовком.

Обратитесь по ссылке, следующей за этим (сноски) и предназначенной для запуска в том же файле:

Метод флажка: (который отличается от переключателей ниже)

<?php

if(isset($_POST['submit'])){

if(isset($_POST['choice'])){

foreach($_POST['choice'] as $choice){

if($choice == "A"){
echo "You chose A" . "\n";
// header('Location: /4.html');
// exit;

}

if($choice == "B"){
echo "You chose B" . "\n";
}

if($choice == "C"){
echo "You chose C" . "\n";
}} // brace for foreach

} // brace for if(isset($_POST['choice']))

// else for if(isset($_POST['choice']))
else{
echo "Please make a choice.";
}

} // brace for if(isset($_POST['submit']))

?>

<form action="" method="post">
<input id="checkbox" type="checkbox" name="choice[]" value="A" />A&#x29;Choice A
<input id="checkbox" type="checkbox" name="choice[]" value="B" />B&#x29;Choice B
<input id="checkbox" type="checkbox" name="choice[]" value="C" />C&#x29;Choice C
<input id="input" onclick="return myFunction()" name="submit"  type="submit" value="Submit">
</form>

Метод переключателей 🙁отредактированный) и добавил атрибут имени к кнопке отправки. Примечание: </input> недопустимый тег; это было удалено

<?php

$choice = $_POST['choice'];

if(isset($_POST['submit'])){

if($choice == "A"){
// echo "You chose A" . "\n";
header("Location: /4.html");
exit; // stop further execution
}

if($choice == "B"){
echo "You chose B" . "\n";
}

if($choice == "C"){
echo "You chose C" . "\n";
}

if(empty($_POST['choice'])){

header("Location: http://www.google.com/");
exit; // stop further execution
}

} // submit conditional

?>

<form action="" method="post">
<input id="radio" type="radio" name="choice" value="A" />A&#x29;Choice A
<input id="radio" type="radio" name="choice" value="B" />B&#x29;Choice B
<input id="radio" type="radio" name="choice" value="C" />C&#x29;Choice C
<input id="input" onclick="return myFunction()" name="submit" type="submit" value="Submit">
</form>

Примечания:

Смотрите следующее на предмет вывода перед заголовком:

Также вы можете использовать переключатели для одиночного выбора и без массива.


Если вы столкнулись с ошибками / уведомлениями / предупреждениями, где-то внизу:

добавлять Отчет об ошибках в начало вашего файла (ов), который поможет найти ошибки.

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

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

2

Другие решения

Других решений пока нет …