在不使用session和get的情况下,在表单提交的同一页面中显示错误

时间:2017-07-16 10:54:24

标签: php html

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

我的代码:

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

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

1 个答案:

答案 0 :(得分:0)

booking.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
}