2012-09-13 87 views
0

我有一個3頁的註冊網站。當用戶選擇第一頁上的三個選項之一時,他們可以提交併移至第二頁。在那裏他們填寫信息並點擊提交,這應該將他們帶到第三頁。問題是單擊第一頁和第二頁上的提交後,jquery重定向代碼無法正常工作。這是在第一頁的代碼:PHP/JQuery重定向

<?php 
session_start(); 
$errors = false; 
$message=""; 
if ($_SERVER["REQUEST_METHOD"] == "POST") { 
    if (!isset($_POST['Reg_type']) || !preg_match('/^[123]$/', $_POST['Reg_type'])) { 
     $message = "Please select an option"; 
     $errors = true; 
    } 
    if (!$errors) { 
     $_SESSION["regtype"]=$_POST["Reg_type"]; 
     header("Location: Registration_2.php"); 
     exit; 
    } 
} 
?> 
<div id="form_page1"> 
<form id="frmtype1" name="frmtype1" method="post"> 
<input type="radio" name="Reg_type" value="1"/> option1 <br/> 
<input type="radio" name="Reg_type" value="2"/> option2 <br/> 
<input type="radio" name="Reg_type" value="3"/> option3 <br/> 
<input type="submit" name="Submit" value="Submit" /> 
<?php 
if($errors) 
echo $message; 
?> 

我試圖在PHP代碼轉換爲JavaScript的,這就是我:

<script> 
$(document).ready(function(e) { 
    $("form").submit(function() { 
     var data= $(this).serialize(); 
     alert(data); 
     $.post("/Registration_1.php",$("#form_page1").serialize()); 
      window.location.replace("http://www.google.com"); //just for testing purposes 
    }); 
}); 
</script> 

但由於某些原因jQuery的東西剛剛獲得'工作,所以我必須使用PHP來代替。誰能告訴我問題是什麼? post方法的第一個參數是否必須是您想要訪問的頁面(Registration_2.php)或您要從中獲取數據的頁面?希望如果第一頁的jquery代碼是固定的,它可以修復第二頁。我在過去的3個小時裏一直在努力/研究這個問題,但無濟於事。請幫忙,謝謝。

+0

你沒有任何形式的結束HTML標記 – rsz

+0

@rsz我沒有複製所有代碼 – Richard

回答

1

爲什麼選擇這樣一個複雜的解決方案?

表1:

<form action="form2.php" method="post"> 
    <input type="submit" > 
</form> 

表2:

<form action="form3.php" method="post"> 
    <input type="submit"> 
</form> 

等等,等等

+0

我應該把這個帖子,但我已經知道這一點,我沒有這樣做的具體原因。我在使用動作屬性集驗證表單時非常困難。 – Richard

+0

從ajax提交驗證帖子和序列化沒有區別。由於反序列化,ajax更難了! – JvdBerg

+0

但是,如果我把action =「page2.php」放在下一頁,或者留在這個頁面上,我怎麼強制它先驗證呢? – Richard