php中如何跳轉,我們看下面的代碼
form3.php
<html> <head></head> <title></title> <script type="text/css"></script> <form action="formprocess3.php" method="post"> <body> <table><tr> <td>Name</td> <td><input type="text" name="name" /></td> </tr> <tr> <td>Movie type</td> <td><select name="movie_type" id="movie_type"> <option value="">Select a movie type...</option> <option value="Action">Action</option> <option value="Drama">Drama</option> <option value="Comedy">Comedy</option> <option value="Sci-Fi">Sci-Fi</option> <option value="War">War</option> <option value="Other">Other</option></select></td> </tr> <tr> <td>Item type</td> <td> <input type="radio" name="type" value="movie" checked="checked" />Movie<br /> <input type="radio" name="type" value="actor"/>Acotr<br /> <input type="radio" name="type" value="director"/>Director<br /> </td> </tr> <tr> <td></td> <td><input type="checkbox" name="debug" id="debug" checked="checked" /> Display Debug Info </td> </tr> <tr> <td colspan="2" style="text-aligh:center"> <input type="submit" name="submit" value="Search" /> <input type="submit" name="submit" value="Add" /> </td> <td></td> </tr></table> </body> </form> </html>
formprocess3.php
<?php if($_POST["type"] == 'movie' && $_POST["movie_type"] == '') { header('Location:form3.php'); } ?> <html> <head> <title><?php echo $_POST['submit'].' '.$_POST['type'].' '.$_POST['name'];?></title> </head> <body> <?php if(isset($_POST['debug'])){ echo'<pre>'; print_r($_POST); echo'</pre>'; } else{ echo 'post'; } $name = ucfirst($_POST['name']); if($_POST['type'] == 'movie'){ $foo=$_POST['movie_type'].' '.$_POST['type']; } else{ $foo = $_POST['type']; } echo '<p>You are '. $_POST['submit'] .'int'; echo ($_POST['submit'] == 'Search')? 'for':''; echo 'a '. $foo .' named '. $name .'</p>'; ?> </body> </html>
注意這一句
if($_POST["type"] == 'movie' && $_POST["movie_type"] == '')
{
header('Location:form3.php');
}
如果選擇movie類型並且傳入的movie_type為空則返回到form3.php頁面中header()方法參數是以分號分割的字符串前面是Location,后面是要跳轉的頁面地址。
head()函數是輸出一個原始的http頭,php請求頁面的時候會首先自動輸出http頭,並且值輸出一次,所以這個方法必須在html文件的開頭使用,前面不能有echo,print之類的輸出語句,也不能有html代碼和空格之類的,否則有可能調用失敗。
還有一點這里有兩個submit按鈕但是value的值不一樣,我們可以根據這個值來進行不同的邏輯處理。