带有回显单选按钮值的未定义索引 PHP

Undefined index PHP with echo radio buttons value

<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 的初学者,正在学习它,但我似乎无法丢失未定义的索引消息。如果我选择全部,那么它不会给出不好的信息。谁能解释一下我如何用这段代码解决这个问题,以及我以后如何用另一个代码解决这个问题。

感谢您的宝贵时间。

更好的方法,因为我猜你真的在寻找单选框和复选框的组合,并且你想输出选中的选项:

<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>";
    }
}
?>

您只是在第一个单选按钮的 $_POST 变量上调用 isset()。您需要检查所有 单选按钮是否已设置。如果其中任何一个未设置,您将收到该警告。

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;
}

1) 删除 <input name="submit" type="submit" <value="Klik"></input> 中 "value" 之前的拼写错误“<” 2)这是毫无意义的:"empty($_POST['submit']" 3)所有单选按钮应该有相同的名称,而不是"radio1"、"radio2"等,如果你想能够select/deselect多个,也许在这里使用复选框会更好选项 4)你得到错误的唯一原因是因为你正在检查 "radio" 变量是否存在 isset($_POST['radio']) 至于其他无线电输入你只是检查它们是否具有任何类型的值: ($_POST['radio1']),你应该在检查它们的值之前检查它们是否都存在 :)