2013-04-29 83 views
0

這Ajax代碼的帖子中的變量,並顯示$('#data').html(data);它一直eco-edphp返回特定的數據。,其中工程阿賈克斯不會從PHP

$.post('login.php',{username:username,password:password}, 
function(data) 
{ 
    $('#data').html(data); 
    if (data=='login'){ 
     alert("sucess"); 
    } 
}); 

但是問題的關鍵在於對未來不工作線:

if (data == 'login') { 
    alert("sucess"); 
} 

此代碼是爲了顯示,如果data == login 我已經通過不同的教程看了一個對話框,該代碼應該是工作,但其並不爲某些[R陳奕迅。

謝謝!

+0

嘗試使用回顯數據來查看返回的內容 – Satya 2013-04-29 12:48:51

+0

使用此代碼時,它會在對話框顯示「登錄」時給出對話框,但在您的描述中應該使用「登錄」。這可能是疏忽? – nvanesch 2013-04-29 12:51:52

+0

試過它仍然無法正常工作。 – 2013-04-29 12:51:58

回答

2

您可以簡單地把JSON數據類型和使用JSON數組作爲響應..

$.post('login.php',{username:username,password:password}, 
function(data) 
{ 
    if (data.status=='login'){ 
     $('#data').html(data.status); 
     alert("sucess"); 
    } else{ 
     alert('not login'); 
    } 
}, 'json'); 

而在你的PHP

<?php 
#.. put any code before that response because after it you must put exit. 
# No other data except it must be sent! Else you will break it.. 
echo json_encode(array('status'=>'login')); 
exit(); 
0

數據持有的login.php的響應的返回結果。

在你的情況下,它probaly返回html,如<h1> welcome user x</h1>(我不知道你的代碼返回,所以它是一個例子)。

如果是這樣,你的代碼應該檢查是否有效。我建議使用JSON。你的login.php檢查登錄數據。如果登錄嘗試有效,則返回登錄名:true;並重定向用戶。 在有效時,只需返回數據錯誤並使用jquery顯示它們。

0

使用此代碼,如果您的響應失敗,您將得到正確的警報。

var jqxhr = $.post("login.php", {username : username, password : password}, function(data) { 
    alert("success" + data); 
    console.log(data); 
},'text') 
.done(function() { alert("second success"); }) 
.fail(function() { alert("error"); }) 
.always(function() { alert("finished"); }); 

否則您將收到「succes」和您的數據警報。

更多信息如何使用此功能,你可以找到http://api.jquery.com/jQuery.post/

要確保它的工作原理。放入login.php

<?php 

echo 'ajax works'; 
exit; 

?> 

您使用的舊功能將被刪除。使用PDO或其他引擎。 您的代碼不安全。 SQL注入是可能的。