3

我以前从来没有遇到过这么奇怪的事情。我使用 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 $classification;

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

还有其他想法吗?

4

1 回答 1

2

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

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

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

请阅读有关SQL Injection的内容。

于 2012-10-25T16:50:17.887 回答