Ajax 调用返回整个页面而不仅仅是回显值
Posted
技术标签:
【中文标题】Ajax 调用返回整个页面而不仅仅是回显值【英文标题】:Ajax call returns entire page rather than just the echo value 【发布时间】:2013-07-19 02:06:53 【问题描述】:我正在对我正在查询数据库的 .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];
?>
两个文件都在同一个目录中。
我已经在 *** 上检查了这个问题的其他答案,但似乎都没有。
我从警报语句中得到的输出如下所示:
<html>
<head><title>
</title></head>
<body>
</body>
</html>5.5
最后的5.5是我唯一需要的值!
我已将 ajax 数据类型设置为文本,但即使这样也无济于事。
【问题讨论】:
您事先得到的其他文本是什么?是的!您需要删除 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;
这样做可以让您在连接失败时处理文件中的数据库逻辑,这样您就可以优雅地处理失败的连接。
【讨论】:
@kirkbackus。我陷入了同样的问题。我在同一个 .php 文件中有 PHP/HTML,因为一些数据是从 html 表单中读取的,并作为变量传递给 php/mysql 查询。因此,我试图包含在一个文件中。但是,当我进行 ajax 调用时,我得到了完整的 html 输出,而没有请求 json 数据。你能提出替代方案吗?以上是关于Ajax 调用返回整个页面而不仅仅是回显值的主要内容,如果未能解决你的问题,请参考以下文章