JQuery ajax请求 - echo不会输出结果

时间:2012-10-25 16:44:06

标签: php jquery ajax echo

我以前从未遇到任何奇怪的事。我使用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;

网络捕获的结果显示ajax请求的输出为空。

如果我改变:

echo $classification;

echo "result is $classification";

输出:

result is 2

它也适用于:

echo "a".$classification;

输出:

a2

通过Ajax返回的内容是否有最小字符限制?

编辑

感谢您的所有建议

@RocketHazmat - 尝试过dataType:'text',仍然没有返回单个整数。绝对使用echo $分类;

@dualed - 我将url放入浏览器窗口,我得到了正确的整数响应,因此我的ajax出了问题。

还有其他想法吗?

1 个答案:

答案 0 :(得分:2)

$.ajax中,您必须指定预期的内容类型。在你的情况下它是'html',所以

$.ajax({
  ...
  dataType : 'html'
});

但是我会建议您使用dataType'json'并将PHP脚本的最后一行更改为json_encode($classification)。如果你没有指定dataType,jQuery会做出明智的猜测,这会导致奇怪的行为。

请阅读关于SQL Injection的内容。