2011-07-07 22 views
0

このjquery関数を使用してabc.phpにリクエストを送信しました。 返されるxの値は正確ですが、値が何であれ、ifだけが実行されます。 xが偽であってもelseは実行されません。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

あなたがチェックしているデータは、ないブール値です。

あなたのテストする必要があります:あなたはPHPの出力に空白を考慮する必要があるかもしれませんx === "true"(が

+0

私は、文字列をチェックするようにコードを変更したが、まだありますprob。 おそらく空白のためです。 x = jQuery.trim($(this).text()); x = x.replace(//g、 ''); x = jQuery.trim(x); x = $(this).text()。replace(//g、 ''); 空白を取り除くためにいくつか試してみました。しかし、動作していないようで、空白が残っています。何故ですか?ご協力いただきありがとうございます。 – Balaji

0

私は問題はデータが文字列として見られているので、あなたは変数外にエコーしていると思います。したがって、変数は常にxが真である意味、設定されている "true" または "false" の場合。

(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