Jquery 当Ajax数据是数组时,它是空的
我有以下PHP代码:Jquery 当Ajax数据是数组时,它是空的,jquery,ajax,arrays,json,Jquery,Ajax,Arrays,Json,我有以下PHP代码: $organization_modules = $this->getDatabase()->template(' SELECT * FROM Module Module INNER JOIN Organization_has_Module OHOM ON Module.id = OHOM.Module_id WHERE OHOM.Organization_id = ' . $_SESSION['User']['org'] .
$organization_modules = $this->getDatabase()->template('
SELECT * FROM Module Module
INNER JOIN Organization_has_Module OHOM
ON Module.id = OHOM.Module_id
WHERE OHOM.Organization_id = ' . $_SESSION['User']['org'] . '
AND Module.category_id = ' . $_POST['category_id'], MySqlTemplates::RFQ_FM);
$all_modules = $this->getDatabase()->template('SELECT * FROM Module WHERE category_id = ' . $_POST['category_id'], MySqlTemplates::RFQ_FM);
foreach ($organization_modules as $module)
{
for ($i = 0, $size = count($all_modules); $i < $size; $i++)
{
if ($module['id'] == $all_modules[$i]['id'])
{
$all_modules[$i]['is_owned'] = true;
}
}
}
print json_encode($all_modules);
现在返回以下数组:
但是,当我在Chrome中调试它时,它表示数据为空:
这是我的ajax
$.ajax({
type: 'POST',
url: '/Module/findByCategory',
dataType: 'json',
data: {
request: 'ajax',
category_id: id
},
success: function (data) {
$('#module_content').html('');
$('#module_content').prepend('<div class="col-md-12"><a href="/Modules/index" class="btn btn-primary"><i class="fa fa-arrow-left"></i> Tilbage</a></div>');
if(data.length > 0)
{});
谁能告诉我发生了什么事。我还查看了Network->response,但即使在回应中,它也表示没有返回任何内容
输出阵列
**更新**
如果我打印json_编码“hello”,那就很有趣了
然后我发现结果不是null而是hello
我的阵列有问题吗
更新2
好吧,为了好玩,我试着选择我所有的用户并打印它们
那成功了吗
因此,我的数组显然有问题,可能是存在空值吗
更新3
为了好玩,我确定没有值是空的,现在它正在工作
到底是怎么回事 您的代码看起来是正确的。在为行创建的数组中查找错误/空值:
$all_modules = $this->getDatabase()->template('SELECT * FROM Module WHERE category_id = ' . $_POST['category_id'], MySqlTemplates::RFQ_FM);
我正在发布OP所问的答案:有未知字符标记为?在屏幕截图上,这可能导致编码失败。但是,考虑重新检查数据库、表、PHP DB驱动程序和其他拼图的编码,以确保它不会再发生,因为人们完全可以使用具有损坏符号的名称,例如Laul-Analds代替打印,使用。echo@AmitSoni怎么会这样Secho json_编码$all_模块;似乎不起作用放置一个print\r$all\u模块,看看数组中有什么@RahulGupta我可以使用Xdebug调试PHP,数组中充满了数据