我以前从未遇到任何奇怪的事。我使用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出了问题。
还有其他想法吗?
答案 0 :(得分:2)
在$.ajax
中,您必须指定预期的内容类型。在你的情况下它是'html',所以
$.ajax({
...
dataType : 'html'
});
但是我会建议您使用dataType'json'并将PHP脚本的最后一行更改为json_encode($classification)
。如果你没有指定dataType,jQuery会做出明智的猜测,这会导致奇怪的行为。
请阅读关于SQL Injection的内容。