2011-10-17 22 views
0

因此,可以說,我有一些形式的這樣的提交多種形式阿賈克斯使用單一形式的價值觀

<form name="formA"> 
    <input type="text" name="username"> 
    <input type="text" name="password"> 
</form> 

表格B:

<div style="display:none;"> 
    <form name="formB"> 
    <input type="text" name="username"> 
    <input type="text" name="password"> 
    </form> 
</div> 

表格C:

<div style="display:none;"> 
<form name="formC"> 
    <input type="text" name="username"> 
    <input type="text" name="password"> 
</form> 
</div> 

表格B和C是隱藏的,我有他們,因爲在用戶在表單A中輸入用戶名和密碼後,我還需要使用他們提交的用於表單B和C的用戶名和密碼信息,然後一次提交所有表單。這樣我就可以使用1登錄表單提交登錄到我的網站的多個部分。我該如何去做這件事?

- 謝謝!

+1

首先改變輸入類型** text =>密碼**爲字段密碼。 – punit

回答

1

如果你不需要HTTPS進行登錄功能,你可以試試這個使用jQuery和ajaxForm插件:

<form name="formA" action="actionA"> 
    <input id="usernameA" type="text" name="username"> 
    <input id="passwordA" type="password" name="password"> 
</form> 

<div style="display:none;"> 
    <form name="formB" action="actionB"> 
    <input id="usernameB" type="text" name="username"> 
    <input id="passwordB" type="password" name="password"> 
    </form> 
</div> 

<div style="display:none;"> 
    <form name="formC" action="actionC"> 
    <input id="usernameC" type="text" name="username"> 
    <input id="passwordC" type="password" name="password"> 
    </form> 
</div> 


$('#formA').submit(function() { 
    var username = $('#usernameA').val(); 
    var password = $('#passwordA').val(); 

    $('#usernameB').val(username); 
    $('#passwordB').val(password); 
    $('#usernameC').val(username); 
    $('#passwordC').val(password); 

    $('#formB').ajaxForm(function() { 
     alert("You have been logged in at B"); 
    }); 
    $('#formC').ajaxForm(function() { 
     alert("You have been logged in at C"); 
    }); 
}); 

當你在B和C發送一個Ajax請求到服務器進行登錄,如果你的服務器在成功登錄後發送一個cookie,我認爲你很好走:P

0

您可以爲每個變量名使用多個值。例如:

<form name="formABC"> 
    <div id="formA"> 
    <input type="text" name="username[]"> 
    <input type="text" name="password[]"> 
    </div> 
    <div id="formB" style="display:none;"> 
    <input type="text" name="username[]"> 
    <input type="text" name="password[]"> 
    </div> 
    <div id="formC" style="display:none;"> 
    <input type="text" name="username[]"> 
    <input type="text" name="password[]"> 
    </div> 
</form> 
+0

這將工作,但每個表單都有自己的「行動」 – MJ93

0

1)您應該使用type="password"作爲密碼輸入字段。

2)一次不能提交多個表單。只有正在提交的表單中的數據將被髮送。根據我所瞭解的您嘗試執行的操作,您需要一個按鈕將三個不同的頁面打開爲三個不同的登錄表單,以存儲三個不同的會話。有更好的方法可以讓你的會話(或cookie)跨網站的多個部分工作,例如將會話ID附加到URL中,以便每次加載頁面時都可以使用它。

3)表單需要定義一個action

+0

謝謝,我意識到我沒有把類型=「密碼」在那裏,或形式的行動;這只是一個例子。有什麼地方我可以去哪裏我可以瞭解如何將Cookie /會話ID附加到網址? – MJ93

+0

@ MJ93:[通過URL傳遞會話ID](http://stackoverflow.com/questions/827910/passing-session-id-via-url) - 但是,我建議實際上在移動網站的不同部分,而不是使用這些PHP設置。 – animuson