Ajax调用返回整个页面而不仅仅是echo值

时间:2013-07-19 17:22:04

标签: php mysql ajax echo

我正在对.php页面进行ajax调用,我正在对数据库进行查询。但是,当我从.php页面回显一个值时,将返回整个html文件,而不仅仅是我需要的数值。

这是我的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上检查了这个问题的其他答案,但似乎都没有。

我从alert语句得到的输出如下:

<html>

<head><title>

</title></head>

<body>

</body>

</html>5.5

最后的5.5是我唯一需要的值!

我已将ajax dataType设置为文本,但即使这样也无济于事。

1 个答案:

答案 0 :(得分: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;
}

执行此操作将允许您处理文件中的数据库逻辑,如果它无法连接,那么您可以正常处理失败的连接。