我从来没有遇到过这么奇怪的事。我使用jquery提出了一个ajax请求,以从mysql获取一个值。
$.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;
network capture中的结果显示ajax请求的输出,该输出为空。
如果我改变:
echo $classification;
到
echo "result is $classification";
输出:
result is 2
它还适用于:
echo "a".$classification;
输出:
a2
通过ajax返回的内容有最小字符限制吗?
编辑
谢谢你的建议
@rockethazmat-尝试了数据类型:“text”,但仍然没有返回单个整数。绝对使用echo$分类;
@dualed-我将url放入浏览器窗口,得到了正确的整数响应,因此我的ajax有问题。
还有其他想法吗?
最佳答案
在$.ajax
中,必须指定所需的内容类型。在你的例子中是“html”,所以
$.ajax({
...
dataType : 'html'
});
但我建议您使用数据类型“json”,并将php脚本的最后一行更改为
json_encode($classification)
。如果不指定数据类型,jquery将进行智能猜测,这可能导致奇怪的行为。请阅读有关SQL Injection的内容。