2017-07-16 76 views
0

我有一個具有三個select input.if的表單,如果用戶不選擇任何選項,我想在同一頁面中顯示錯誤。用戶必須插入三個選擇輸入中的任何一個,用戶可以在所有輸入中選擇或僅選擇一個或僅兩個或全部。如果不是,我想顯示錯誤。在不使用會話的情況下在表單提交的同一頁面中顯示錯誤並獲取

我的代碼:

<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,因爲它帶來了一些錯誤。

+0

爲什麼不能消除你使用一個會話或者得到PARAMS時得到了錯誤? – Jeff

+0

它也將是更好的驗證形式_before_通過JavaScript發送到服務器。 – Jeff

回答

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 
} 
相關問題