我有以下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'] . '
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-&gt; reponse,但即使在回复中它说它没有返回任何东西
输出数组
**更新**
如果我print json_encode('hello')
然后我的结果不是空但hello
我的数组有问题吗?
更新2
好的,所以我试着选择我的所有用户并打印它们很有趣
并且工作了吗?
所以我的数组有明显错误,可能是有空值吗?
更新3
为了好玩,我确保没有值为null,现在它正在工作......
地狱发生了什么?!?!?!?
答案 0 :(得分:1)
我按照OP的要求发布了答案:有未知的字符(屏幕截图上标有?
),这可能是导致编码失败的原因。但是,考虑重新检查数据库,表格,php db驱动程序和其他拼图的编码,以确保它永远不会再发生,因为人们完全可以使用带有变音符号的名称,例如Ólafur Arnalds
答案 1 :(得分:-1)
您的代码看起来正确。查找为您的行创建的数组的错误/空值:
$all_modules = $this->getDatabase()->template('SELECT * FROM Module WHERE category_id = ' . $_POST['category_id'], MySqlTemplates::RFQ_FM);