【发布时间】:2015-10-23 01:59:41
【问题描述】:
我的脚本有问题,该脚本通过 AJAX 从数据库请求记录,然后通过 JSON 将其返回。它在我的本地主机上正常工作,但是当我将其上传到服务器时它不起作用。
我阅读了关于空json_encode()结果的主题,发现类似的问题对很多人来说都是如此,并且有数据编码的解决方案。但我所有的文件、表格和数据通常在本地和远程服务器上都采用 UTF-8 编码。
我的 PHP 脚本所做的一切都是从数据库请求记录(我使用 PDO 库,并将数据库编码设置为 UTF-8 - SET NAMES 'utf8')然后抛出循环,它使用数据库中的数据生成 HTML 标记,然后返回为带有json_encode($result) 的数组。
如果我尝试print_r($result) 并在浏览器Developer tools 中观看它们,我将看到带有正常数据的正确数组。但如果我用json_encode($result) 退回它们,结果将一无所有。
我的结果数组中还有俄语文本。
结果数组示例:
[data] => Array
(
[0] => Array
(
[0] => <input type="checkbox" name="id[]" value="1">
[1] => 1
[2] => Английский стол
[3] => <span title='Вращающийся английский стол с выдвижными ящиками.Англия, 1900-е гг.Красное дерево, мягкая кожа диска, передвигается на бронзовых колесиках.Диаметр 91, высота 71 см.'>Вращающийся английский стол с выдвижными ящиками.<br>Англия, 1900-е гг.<br>Красное дерево, мягкая кожа диска, перед...</span>
[4] => 250€
[5] => sss
[6] =>
[7] => <span class="label label-sm label-success">Опубликован</span>
[8] => <a href="/jc_adm/?p=edit_product&id=1" class="btn btn-xs default btn-editable"><i class="fa fa-pencil"></i> Редактировать</a>
)
[1] => Array
(
[0] => <input type="checkbox" name="id[]" value="2">
[1] => 2
[2] => Старинный раскладной стол
[3] => <span title='Оригинальный стол 1800 г. вторая половина.Изогнутые ножки, резная опора, натуральное дерево.Высота 125 Ширина 56 Высота 78 см.'>Оригинальный стол 1800 г. вторая половина.<br>Изогнутые ножки, резная опора, натуральное дерево.<br>Высота 125 Ширин...</span>
[4] => 210€
[5] => sss
[6] =>
[7] => <span class="label label-sm label-success">Опубликован</span>
[8] => <a href="/jc_adm/?p=edit_product&id=2" class="btn btn-xs default btn-editable"><i class="fa fa-pencil"></i> Редактировать</a>
)
[2] => Array......
但是如果我手动创建数组,例如下一个信息
echo json_encode(array('fruits' => array('banan', 'apple', 'mango', 'редиска')));.
它将正常工作,并正常显示 JSON 编码的字符串。但是我的示例中的数组不想返回。为什么会这样?
我发现如果我删除设置数据库编码$objDB->query("SET NAMES utf8");,我会得到结果,但我得到的不是俄语文本,而是问号?????
{"data":[["<input type=\"checkbox\" name=\"id[]\" value=\"1\">",1,"?????????? ????","<span title='??????????? ?????????? ???? ? ?????????? ???????.??????, 1900-? ??.??????? ??????...
【问题讨论】:
标签: php json ajax is-empty jsonresult