2016-01-03 75 views
2

我有兩種形式在一個頁面一樣,表單提交用另一種形式的數據

<form action="login.php" method="POST"> 
    <input type="text" name="username"> 
    <input type="submit" value="submit"> 
</form> 

<form action="login2.php" method="POST"> 
    <input type="text" name="code"> 
    <input type="submit" value="submit"> 
<form> 

,唯一可能的方式來登錄會,

  1. 的用戶名和密碼
  2. 代碼只

用戶無法單獨使用用戶名登錄。

當用戶需要與用戶名和代碼登錄,請求應發送到login.php,並且當用戶需要用單獨的代碼登錄,請求應發送到login2.php

到目前爲止,僅在代碼方法效果很好,但我不知道,如何使用JS與第一種形式的請求一起提交code值,用戶名和密碼方法/ JQuery的?

任何幫助,將不勝感激:)

回答

1

我的形式組合成一個,讓服務器端的PHP腳本,以決定是否在登錄方法(1)或(2)。

if(isset($_POST['username']) && isset($_POST['code'])){ 
     // Username and code login 
    } 
    else if (isset($_POST['code'])){ 
     // Code only login 
    } 

或者,使用一個比特JavaScript來採取的形式的值從表單,以檢查用戶名是否存在,並且發佈的值,以所希望的腳本。與jQuery這將是這樣的:

$("#loginForm").on("submit", function(e){ 

    var username = $('input[name="username"]).val(), 
     code = $('input[name="code"]).val(), 
     login_script = username ? 'login.php' : 'login2.php'; 

    // Prevent form submitting 
    e.preventDefault(); 

    $.ajax({ 
     url: login_script, 
     method: 'POST', 
     data: { username: username, code: code }, 
     success: function(response){ 
      console.dir(response); 
     }, 
     error: function(jqXHR, textStatus, errorThrown){ 
      console.error(arguments); 
     } 
}); 
+0

非常感謝你:) –