2015-06-27 40 views
0

我有一個2步註冊過程,它由2個不同的HTML頁面組成。 第二步(也是最後一步)收集所有數據並將其發送到服務器進行評估。爲簡單起見,假設我在第一種形式和用戶的第二年齡收集用戶的姓名:如何在HTML中的表單之間傳遞參數?

formA.html:

<form action="formb.html" method="get"> 
     Name: <input id="age" type="text" name="age"> 
     <input id="submit_button" type="submit" value="CONTINUE"> 
</form> 

formB.html:

<form action="serverscript.py" method="post"> 
     Age: <input id="name" type="text" name="name"> 
     <input id="submit_button" type="submit" value="SUBMIT"> 
</form> 

我怎麼能「傳播「用戶輸入的」名稱「formA.htmlformB.html以便我可以向服務器發送姓名,年齡?

p.s.我可以thinkg的唯一方法是用做它,然後在解析的formB URL,但似乎很醜陋......

回答

1

formA.html:

<form action="formb.html" method="get"> 
      Name: <input id="Name" type="text" name="Name"> 
      <input id="submit_button" type="submit" value="CONTINUE"> 
    </form> 

在B型使這改變了......

formB.html:

<form action="serverscript.py" method="post"> 
     Age: <input id="age" type="text" name="age"> 
     <input id="Name" type="hidden" value=""> 
     <input id="submit_button" type="submit" value="SUBMIT"> 
</form> 
<script type="text/javascript"> 
    var query = window.location.search.substring(1); 
    var Field=query.split("="); 
    document.getElementById("Name").value = Field[1]; 
</script> 

希望這將有助於;)

+0

是的,這沒有戲法:) – Yura

1

我能想到的3種方式:

1)的cookie。將信息存儲在cookie中並以第二種形式讀取
2)查詢字符串。您可以將數據鏈接到查詢字符串並在表單上讀取它。B
3)您可以使用表格的action屬性採取一個網址。 (推薦)

+0

感謝@ Royi,你能解釋一下(3)中的含義嗎? – Yura

1

由於您通過'GET'方法發送數據,因此您可以將您從表單A獲得的數據構建爲隱藏在表單B中的html隱藏輸入字段,然後當您提交表單B時,數據將被髮送到服務器。

編輯

假設正在使用PHP作爲服務器端:

forma.php

<form action="formb.php" method="get"> 
     Name: <input id="name" type="text" name="name"> 
     <input id="submit_button" type="submit" value="CONTINUE"> 
</form> 

formb.php

<form action="postPage.php" method="post"> 
     Age: <input id="age" type="text" name="age"> 

     <?php 
     if(isset($_GET['name']) 
     { 
     ?> 

     <input id="name" type="hidden" name="name" value="<?php echo $_GET['name']?>"/> 

     <?php } ?> 

     <input id="submit_button" type="submit" value="SUBMIT"> 
</form> 
+0

謝謝@KAD,這就是我的想法,將其構建爲隱藏數據。但是,我不知道收集這些數據。我應該解析URL嗎? – Yura

+0

收集數據取決於您正在使用的服務器端語言,如果它是PHP,則可以使用$ _GET數組獲取數據並進行循環以在窗體中構建隱藏字段。您可以對URL進行編碼以確保安全,然後在B頁面中對其進行解碼。 – KAD

+0

我正在使用Python(但這並不重要)。我正在formB的SUBMIT之後收集數據。但是,我需要傳播數據formA ---> formB,並且在這個過程中沒有涉及服務器端。我能想到的唯一方法就是用形式A的方法獲取,然後解析formB中的URL,但這看起來很難看...... – Yura

1

嘗試使用HTML5的sessionStorage存儲數據在瀏覽器會話中。在會話期間,用戶可以完全訪問域的其他頁面或其他站點,然後返回到原始域。 sessionStorage在會話期間保存的任何數據將保持可用,但僅限於原始域中的頁面,直到標籤或窗口關閉。