2013-07-19 138 views
1

我正在對一個.php頁面進行ajax調用,在那裏我正在查詢數據庫。但是,當我從.php頁面回顯一個值時,會返回整個html文件,而不僅僅是我需要的數值。Ajax調用返回整個頁面而不僅僅是回顯值

這是我的AJAX腳本:

<script type="text/javascript"> 

$(document).ready(function() 
{ 
    $("#valuebutton").click(function() 
    { 
     var id1=$('.player1').val(); 
     $.ajax 
    ({ 
     type: "POST", 
     url: "updatevaluebox.php", 
     data: ({g1: id1}), 
     cache: false, 
     success: function(value) 
     { 
      //alert(value); 
      $('#valuebox').val(value); 
     } 
    }); 
    }); 
}); 
</script> 

這是PHP頁面updatevaluebox.php:

<?php 
    require("connect_db.php"); 
    $q="SELECT price FROM playerlist where id=".$_POST['g1']; 
    $r=mysqli_query($dbc,$q); 
    $price=mysqli_fetch_array($r,MYSQLI_NUM); 
    mysqli_close($dbc); 
    echo $price[0]; 
?> 

這兩個文件都在同一個目錄。

我已經在stackoverflow上檢查了這個問題的其他答案,但似乎沒有工作。

我從提示語句得到的輸出如下所示:

<html> 

<head><title> 

</title></head> 

<body> 

</body> 

</html>5.5 

5.5在到底是我唯一需要的價值!

我已經將ajax dataType設置爲文本,但即使這樣也沒有幫助。

+0

你事先得到的其他文字是什麼? –

+0

5.5 我得到這個整個事情,而不僅僅是5.5! –

+3

這個怎麼樣...你的connect_db.php文件中有沒有HTML代碼?如果它確實那麼你應該消除它... –

回答

1

是的!您需要刪除connect_db.php文件中的任何HTML。我建議在該文件中存儲一個變量,檢查您的連接是否成功。例如:

connect_db.php

$isConnected = false; 
$dbError = ""; 
if ($dbc=mysqli_connect('localhost','*****','*****','ff') { 
    $isConnected = true; 
} else { 
    $dbError = mysqli_connect_error(); 
} 

其他文件

require("connect_db.php"); 

if($isConnected) { 
    //DO ALL YO STUFF!! 
} else { 
    //HANDLE THE ERROR AS YOU LIKE, LIKE PRINTING IT OUT 
    echo $dbError; 
} 

這樣做可以讓你在處理您的文件數據庫邏輯如果它沒有這樣連接你可以優雅地處理失敗的連接。

+0

乾杯兄弟。這解決了我的問題。非常感謝! –

+0

@kirkbackus。我陷入了同樣的問題。我在同一個.php文件中有PHP/HTML,因爲有些數據是從html表單中讀取的,並作爲變量傳遞給php/mysql查詢。因此,我試圖包含在一個文件中。但是,當我進行ajax調用時,我得到完整的html輸出而沒有請求json數據。你能建議替代嗎? – user5249203

相關問題