我有一个PHP脚本,它使用json_encode()方法解析数组但返回空白
PHP代码如下
$companies = $db->getCustomerNames();
print_r($companies)
if (!empty($companies)){
$jsonstring = json_encode($companies);
echo $jsonstring ;
}
else{
echo 'false';
}
我也有一个看起来像这样的javascript
jQuery.ajax({
type: "GET",
url: "http://localhost/myscript.php"
success: function(msg) {
companies = jQuery.parseJSON(msg);
//DO OTHER STUFF WITH companies
}
});
答案 0 :(得分:2)
如果数组显示就像你在问题文本中提到的那样,那就出错了。该页面应该显示类似
的内容["IBM","EDS","MICROSOFT"]
您也可以发布相关的PHP代码吗?
答案 1 :(得分:1)
尝试使用function_exist,因为在某些服务器上可以禁用json *函数或将php配置为不使用它
答案 2 :(得分:0)
你的js是正确的,正如JohnP所说,当你点击http://localhost/myscript.php时,你应该将数组显示为[“IBM”,“EDS”,“MICROSOFT”]。检查您是否有类似下面的代码:
<?php
$a = array (0 =>'IBM' ,1=>'EDS' ,2=>'SUN' ,3=>'GOOGLE' ,4 => 'ORACLE');
echo json_encode($a);
?>
答案 3 :(得分:0)
首先执行print_r($companies)
然后执行echo $jsonstring;
删除print_r行,因为当然响应不是有效的JSON字符串。
还要尝试在回显之前添加header("Content-Type: text/plain");
,并确保在任何输出之前放置该字符串。