2010-04-15 47 views
1

爲什麼我會得到答案「不」?jquery ajax表單函數(數據)

jQuery的將數據發送到PHP查詢

$j.post("logincheck.php",{ 
username:$j('#username').attr('value'), 
password:$j('#password').attr('value'), 
rand:Math.random() } , 
function(data) { 
    if(data=='yes') {alert('yes');} 
    else {alert('no');} 
    } 
); 

這裏是PHP查詢

if(isset($_POST['username'])): 
$username = $_POST['username']; 
$password = $_POST['password']; 
$posts = mysql_query("SELECT * FROM users WHERE username='$username'"); 
$no_rows = mysql_num_rows($posts); 
while($row = mysql_fetch_array($posts)): 
print 'yes'; 
endwhile; 
else: 
print 'no'; 
//header('location: index.php'); 
endif; 
endif; 
+0

php代碼是否完整或是否存在? 您是否試圖查看數據對象以查看它返回的信息類型? PS 爲什麼dont'you使用.VAL()方法,而不是.attr( '值')? – mamoo 2010-04-15 12:30:07

+0

就像旁註一樣,我不會通過GET請求發送密碼值,除非它是完全不可避免的。 – 2010-04-15 12:31:02

+0

您是否嘗試提醒數據?您是否從服務器端迴應yes? – ant 2010-04-15 12:32:18

回答

0

儘量直接回覆此:

{ 
"valid" : "yes" // or "no" 
} 

,並在你的信息:

$j.post(url,{your stuff}, function(data){ 
    if(data.valid==="yes"){...} 
},"json"); 

並使用.VAL()來替代

0

獲取輸入有關使用.val()代替.attr('value')什麼。

我的意思是,它是在黑暗中拍攝的,但屬性值在您輸入任何內容時不會更新,它用於設置表單的默認值,而不是.val()方法應獲取輸入的值。

PS:您是否確實測試過您的PHP腳本正確接收數據?

編輯jsFiddle檢查它後,它原來都應該正常工作:-)

http://jsfiddle.net/cwPPp/

1

這似乎從你的PHP代碼,如果用戶有多個帖子,然後「是」將打印多次。這意味着,如果用戶有且只有一個職位這一說法只會是真實的:

if(data == 'yes') 

在JavaScript更改else子句下面,看看是越來越由AJAX調用返回,留給我們知道你的得到。

alert(data);