我从来没有遇到过这么奇怪的事。我使用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的内容。

09-27 00:54
查看更多