2012-10-25 30 views
3

我從來沒有遇到過這種奇怪的東西。我使用jQuery提出一個Ajax請求以從mysql獲取值。jQuery ajax請求 - 回聲將不會輸出結果

$.ajax({ 
    url: 'ajaxClassificationCheck.php?category='+category, 
    cache: false, 
    success: function(returnClass) 
    { 
     $("#classification").val(returnClass); 
}}); 

和PHP ...

include_once ('functions.php'); 
connectdb(); 

$category = $_GET['category']; 

$q = "SELECT classification_id FROM sch_category WHERE category_id = $category"; 

$r = mysql_query($q) or die (mysql_error()); 
$row = mysql_fetch_assoc($r); 
$classification = $row['classification_id']; 
echo $classification; 

結果在網絡捕獲示出了從Ajax請求裏面是空的輸出。

如果我改變:

echo $classification; 

echo "result is $classification"; 

輸出:

result is 2 

它還適用於:

echo "a".$classification; 

輸出:

a2 

有什麼可以通過Ajax返回的最小字符數限制?

編輯

感謝您的建議

@RocketHazmat - 試圖數據類型: '文本',仍沒有返回一個整數。肯定使用echo $分類;

@dualed - 我把網址放到瀏覽器窗口中,我得到正確的整數響應,所以它是我的ajax錯誤。

還有其他想法嗎?

+1

嘗試將'dataType:'text''添加到'$ .ajax'調用中。也許當jQuery看到一個數字時,它會嘗試處理它。 –

+0

你在代碼中使用'echo $分類;'而不是'die($分類);'(或'exit($ classification);'),對吧? –

+1

如果您使用瀏覽器訪問ajax網址,您會看到什麼? – dualed

回答

2

$.ajax中,您必須指定預期的內容類型。你的情況是「HTML」,所以

$.ajax({ 
    ... 
    dataType : 'html' 
}); 

但不是這個,我會建議你使用的dataType「JSON」和你的PHP腳本的最後一行更改爲json_encode($classification)。如果你沒有指定dataType,jQuery將做出明智的猜測,這可能會導致奇怪的行爲。

請閱讀SQL Injection

+0

感謝您的建議。我嘗試了兩種方法,但它仍然不適合我。我會牢記這一點,因爲我通常不會使用dataType,因爲我一直都在爲我工作,我猜這裏肯定還有別的問題。 –

+0

請發佈您的PHP腳本的原始輸出。 – jonas

+0

對不起,不確定你的意思。 PHP代碼在上面。運行Web地址時,輸出爲整數1或2(取決於$ category的替換)。使用ajax時不輸出,除非使用PHP我在前面插入至少一個字符。 –