Неопределенный индекс PHP со значением эхо-кнопок - PullRequest
0 голосов
/ 03 мая 2018
<h1> Hotel kamer reservering </h1>
<br><br>

<form method="POST">
<input name="radio" type="radio" value="éénpersoonskamer">éénpersoonskamer</input><br><br>
<input name="radio1" type="radio" value="tweepersoonskamer">tweepersoonskamer</input><br><br>
<input name="radio2" type="radio" value="ontbijt">ontbijt</input><br><br><br>
<input name="radio3" type="radio" value="lunch">lunch</input><br><br><br>
<input name="radio4" type="radio" value="diner">diner</input><br><br><br>
<input name="submit" type="submit" <value="Klik"></input>
</form>

<?php 

if(isset($_POST['submit']) and ! empty($_POST['submit'])) {
    if(isset($_POST['radio']) ||  ($_POST['radio1']) || ($_POST['radio2']) || ($_POST['radio3']) || ($_POST['radio4']) ) {
        $radio = $_POST['radio'] . '&nbsp' . $_POST['radio1'] . '&nbsp' . $_POST['radio2'] . '&nbsp' . $_POST['radio3'] . '&nbsp' . $_POST['radio4'];
        echo $radio;
    }
}
?>

Я новичок в PHP, изучаю его сейчас, но не могу потерять неопределенное индексное сообщение. Если я выберу все, это не даст плохого сообщения. Может кто-нибудь объяснить мне, как я могу исправить это с помощью этого кода и как я могу решить это с другим кодом в будущем.

Я благодарен за ваше время.

Ответы [ 3 ]

0 голосов
/ 03 мая 2018

Вы вызываете isset() только для переменной $_POST для первого переключателя. Вы должны проверить, что все переключатели установлены. Если какой-либо из них не установлен, вы получите это предупреждение.

if(isset($_POST['radio'], $_POST['radio1'], $_POST['radio2'], $_POST['radio3'], $_POST['radio4']) ) {
    $radio = $_POST['radio'] . '&nbsp' . $_POST['radio1'] . '&nbsp' . $_POST['radio2'] . '&nbsp' . $_POST['radio3'] . '&nbsp' . $_POST['radio4'];
    echo $radio;
}
0 голосов
/ 04 мая 2018

1) Удалите опечатку "<" перед "значением" в <code><input name="submit" type="submit" <value="Klik"></input> 2) Это бессмысленно: "empty($_POST['submit']" 3) Все переключатели должны иметь одинаковое имя, а не «radio1», «radio2» и т. Д., Возможно, было бы лучше использовать здесь флажки, если вы хотите иметь возможность выбрать / отменить выбор более чем одной опции 4) Единственная причина, по которой вы получаете ошибку, заключается в том, что вы проверяете переменную «radio», если она существует с isset($_POST['radio']), как и для других радиовходов, которые вы проверяете, имеют ли они какое-либо значение: ($_POST['radio1']), Вы должны проверить, все ли они существуют, прежде чем проверять их значения:)

0 голосов
/ 03 мая 2018

Лучший подход, так как, я думаю, вы действительно ищете комбинацию радио и флажков и хотите вывести проверенные параметры:

<h1> Hotel kamer reservering </h1>
<br><br>

<form method="POST">
<input name="roomtype" type="radio" checked="checked" value="éénpersoonskamer">éénpersoonskamer <br><br>
<input name="roomtype" type="radio" value="tweepersoonskamer">tweepersoonskamer <br><br>
<input name="food[]" type="checkbox" value="ontbijt">ontbijt <br><br><br>
<input name="food[]" type="checkbox" value="lunch">lunch <br><br><br>
<input name="food[]" type="checkbox" value="diner">diner <br><br><br>
<input name="submit" type="submit"> 
</form>

<?php 

if(!empty($_POST['submit'])) {
    echo "roomtype: " . $_POST['roomtype'] . "<br>";
    $food = $_POST['food'];
    foreach ($food AS $k => $v) {
        echo "Food $k = $v<br>";
    }
}
?>
...