2011-07-07 125 views
0

我用這個jquery函數發送請求到abc.php; 返回的x的值是正確的,但無論它是什麼值,只有if被執行;即使x是假的,其他的也不會被執行。問題在jquery ajax

$.post('abc.php',{u:e1.value},function(x){ 
document.getElementById('d').innerHTML+=" x="+x; 
if(x){ 
    document.getElementById('d').style.color="green"; 
    document.getElementById('d').innerHTML+="<img src='t.jpeg'>"; 
    q=true; 
    } 
else{ 
    document.getElementById('d').style.color="red"; 
    document.getElementById('d').innerHTML+="U"; 
    q=false; 
    }document.getElementById('f').innerHTML+=" q="+q; 
    }); 
} 

這是文件abc.php;

<?php 
$db = "b"; 
$link = mysql_connect("localhost","root",""); 
mysql_select_db($db, $link) or die(mysql_error()); 
$q = "select * from us where ad='$_POST[u]'"; 

$r=mysql_query($q, $link) or die(mysql_error()); 

if(mysql_num_rows($r)==1) 
echo true; 
else echo false; 
mysql_close($link) or die(mysql_error()); 
?> 

回答

0

正在檢查的數據是沒有一個布爾值。

您的測試應該是:x === "true"(儘管你可能需要在PHP的輸出佔空白

+0

我改變了代碼來檢查字符串,但仍然有概率。 它可能是因爲空白。 x = jQuery.trim($(this).text()); x = x.replace(//g,''); x = jQuery.trim(x); x = $(this).text()。replace(//g,''); 我嘗試了一些去除空格。但似乎不起作用,空白仍然存在。這是爲什麼?謝謝你的幫助。 – Balaji

0

我認爲這個問題是你是呼應了變量,這樣的數據被看作是一個字符串。因此,如果是「真」或「假」的變量始終設置,這意味着x是真實的。

試着改變你的聲明,如果(x.toLowerCase()==「真」)

你可以再加一個=來檢查它確實是一個字符串

0

數據以字符串形式提取,不是布爾值。 而且你正在迴應布爾而不是字符串。

http://codepad.org/KCROfdqq

<?php 

echo "true"; // output : true 

echo true ; // output : 1 


?> 

因此,嘗試這些變化:

PHP:

echo "true" ; 
and echo "false"; 

的Javascript:

if(x == 'true') 
+0

我做了改變,但沒有解決問題;可能是因爲空白? – Balaji