2013-07-19 110 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

相关问题