在未使用会话和 Get 的情况下在同一页面中显示表单提交的错误



我有一个包含三个选择输入的表单。如果用户不选择任何选项,我想在同一页面中显示错误。 用户必须插入三个选择输入中的任何一个,用户可以在所有输入中选择,也可以只选择一个或两个或全部。 如果没有,我想显示错误。

我的代码:

<form action="booking.php" method="POST">
<h1>SINGLE ROOM</h1>
Number of Rooms:
<select name="singleroom">
<option selected="true" disabled="disabled">0</option>  
<?php 
foreach($singleroom as $room):
for($i=1;$i<=$room['maxRoom'];$i++){ ?>
<option value="<?php echo $i ?>"><?php echo $i ?></option>
<?php } 
endforeach;
?>
</select>
<h1>DOUBLE ROOM</h1>
Number of Rooms:
<select name="doubleroom">
<option selected="true" disabled="disabled">0</option>
<?php 
foreach($doubleroom as $room):
for($i=1;$i<=$room['maxRoom'];$i++){ ?>
<option value="<?php echo $i ?>"><?php echo $i ?></option>
<?php } 
endforeach;
?>
</select>
<h1>TRIPLE ROOM</h1>
Number of Rooms:
<select name="tripleroom">
<option selected="true" disabled="disabled">0</option>
<?php 
foreach($tripleroom as $room):
for($i=1;$i<=$room['maxRoom'];$i++){ ?>
<option value="<?php echo $i ?>"><?php echo $i ?></option>
<?php } 
endforeach;
?>

</select>
<input type="submit" name="submit">
</form>

在预订中.php我已经验证了用户是否已完成要求。 如果没有,我想重定向到有错误的表单页面。 我不想使用 get 和会话,因为它带来了一些错误。

在您的预订中.php在获取表单数据的开头添加以下代码。

if(!isset($_POST['singleroom']) && !isset($_POST['doubleroom']) && !isset($_POST['tripleroom'])){
header("Location: your_form_page.php?error=1"); // redirect back to your page you are showing form.
}

在显示表单的表单页面中,请使用以下命令:

if(isset($_GET['error']) && $_GET['error'] == 1){
echo "Please select atleast one field";     // your error message you want to show
}

相关内容

最新更新