2015-11-07 75 views
1

我想創建頁面登錄系統。用jquery登錄頁面

沒有JavaScript我可以在這個結構完美登錄:

<?php 
require_once('login.php'); 
$login = new Login(); 

// if we are logged in here: 
if ($login->isUserLoggedIn() == true) { 
    // yes we are 
    echo "<div id=\"login\">you logged in as $_SESSION[user_name]. <a href=\"?logout\">Logout</a></div>"; 

} else { 
    // no 
    echo " 

     <div id=\"login\" style=\"display: none;\"> 

      <form action=\"index_.php\" method=\"post\" name=\"loginform\" id=\"loginform\" onsubmit=\"return false;\"> 

       <input type=\"text\" class=\"form-control\" id=\"user_name\" name=\"user_name\><br> 

       <input type=\"password\" class=\"form-control\" id=\"user_password\" name=\"user_password\"><br> 

       <label class=\"checkbox-label\" style=\"pointer-events: all;\" for=\"user_rememberme\"><input checked class=\"user_rememberme\" name=\"user_rememberme\" id=\"user_rememberme\" value=\"1\" type=\"checkbox\"/> 
       Remember me</label> 

       <a href=\"#frg\" class=\"frg float:right; display:inline;\">Forgot Password?</a>  

       <input class=\"btn btn-success\" type=\"submit\" name=\"login\" id=\"loginbutton\" value=\"Login\"> 

      </form> 

     </div><!-- login ends --> 

     "; 
} 
?> 

目前的工作體系,我送form到當前頁面。而下面告訴用戶結果代碼:(。比如你登錄,請激活你的帳號,登錄失敗)

<?php 
// I send the form same page upside. 
// and if i login or not, codes below lets me know. 
if (isset($login)) { 
    if ($login->errors) { 
     foreach ($login->errors as $error) { 
      echo "<div id=\"message\">$error</div>"; 
     } 
    } 
    if ($login->messages) { 
     foreach ($login->messages as $message) { 
      echo "<div id=\"message\">$message</div>"; 
     } 
    } 
} 
?> 

作爲下一個步驟,我想在頁面登錄使用Ajax的幫助。因此,這裏是我的javascript代碼入手:

<script type="text/javascript"> 
// login on page 
     $(function(){ 
      $("#loginform").submit(function(){ // .click yerine .submit 
       if($("#loginform").valid()){ 

       $.ajax({ 
        type: "POST", 
        url: "index_.php", 
        data: $("#loginform").serialize(), 
        beforeSend: function(){ 
         $('#message').html('Loading...');    
        }, 
        success: function(data){ 
         $('#message').html(data); 

        } 
       }); 
       } 
      }); 
     });  
</script> 

具體javascript代碼

success: function(data){ $('#message').html(data);

我要輸出我的PHP結果的一部分,但複製的php data內顯然不會工作。

我該怎麼辦?

+0

你應該使用'$( '#消息')。HTML(數據);'...... – davidkonrad

+0

這樣#'message'加載整個頁面。但我只想看到結果輸出。 – Lukasz

+0

好的;上述內容並不那麼明顯。所以第一塊代碼是'index_.php'?下一段代碼是什麼? – davidkonrad

回答

0

您可以添加額外的POST-字段(例如 「AJAX」) 並返回其他輸出,如果設置

$.ajax({ 
     type: "POST", 
     url: "index_.php", 
     data: $("#loginform").serialize() + "&ajax=1", 
+0

所以我應該添加名爲ajax的post字段並將值「1」併發送給表單。但是我要在哪裏使用php代碼?我很抱歉我的無知,但我不明白 – Lukasz

+0

你可以在index.php中運行php代碼,你想要多少。只需將它添加到此處並在其周圍創建一個if(isset($ _ POST ['ajax'])){在此運行php代碼}。 – lyRx