2014-01-27 60 views
0

我是新來的ajax,jQuery和JavaScript,這是一個更多的學習練習,爲自己刷新一些技能。我想從單獨頁面的登錄頁面(即loginForm.php發送數據到login.php然後重定向到已登錄的部分)並希望向下移動jQuery ajax路由。Ajax登錄返回不正確的細節,即使細節正確

我建立我的索引頁,如下所示:

<form id="login_form"> 
    <h1>Login Form</h1> 
    <div> 
     <input type="text" placeholder="Username" required="" id="user_name" name="user_name"/> 
    </div> 
    <div> 
     <input type="password" placeholder="Password" required="" id="password" name="password"/> 
    </div> 
    <div class="err" id="add_err"></div> 
    <div> 
     <input type="submit" value="Log in" id="login" /> 
    </div> 
</form> 

我已經設置我的JavaScript像這樣:

$("#login").click(function(){ 
    username=$("#user_name").val(); 
    password=$("#password").val(); 
    console.log(username + " " + password); 
    var info = {username:username, password:password}; 
    console.log(info); 
    var sub = $.ajax({ 
     async: false, 
     type: "POST", 
     url: "login.php", 
     data: info, 
     success: function(html){ 
     if(html=='true') 
     { 
      $("#login_form").fadeOut("normal"); 
     } 
     else 
     { 
      $("#add_err").html("Wrong username or password"); 
     } 
    }, 
    beforeSend:function() 
    { 
     $("#add_err").html("Loading...") 
    }, 
    error: function(response) { console.log(response); } 
    }); 
    console.log(sub); 
    return false; 
}); 

當我console.log(info)它告訴我的日誌,這是一個對象它有我需要發送的信息。所以我相信這部分到目前爲止沒有問題。下面的腳本是我的login.php:

<?php 
include('secure.php'); // includes PDO database connection here 

$username = $_POST['username']; 
$password = $_POST['password']; 

$sel = $db->prepare("SELECT * FROM aaUsers WHERE username='$username' AND password='$password'"); 
$sel->execute(); 
$count = $sel->rowCount(); 
    if ($count >= 1) { 
     echo "true"; 
    } 
    else 
    { 
     echo "false"; 
    } 
?> 

的信息跨到這裏,並通過隨後此腳本運行然而,當我console.log(sub)我可以看到responseText = ""這也是造成我的腳本進行故障轉移。有人能夠告訴我我出錯的地方,我覺得我正在做的一切都是正確的,只是似乎出現了我出錯的地方。

+0

把'console.log(html)'放到你的AJAX成功函數中,找出你的PHP腳本返回的內容。這可能就像需要將返回的數據修剪掉()一樣簡單...... –

+1

我猜你的php失敗了,並且你關閉了錯誤報告 – Steve

回答

0

你使用鉻或firefox(與螢火蟲)?打開開發者控制檯並觀看AJAX調用返回的內容。如果它在那裏是空白的,那麼作爲scrowler已經放好了,你的php是錯誤的。你也可以創建一個快速的非ajax測試表單來發布兩個變量。

<html> 
<body><form action=login.php method=post><input name=username/> <input name=password/> <input type=submit></form></body></html> 

填空並點擊提交。

0

我的不好。

原來我曾呼籲:

$sel = $db->prepare(...); 

代替:

$sel = $conn->prepare(...); 

工作正常現在,感謝您的建議,看我的PHP腳本。

相關問題