我正在使用PHP上传文件,并希望将文件名和文件状态返回给javascript。在PHP中,我通过以下方式创建json对象:
$value = array('result' => $result, 'fileName' => $_FILES['myfile']['name']);
print_r ($value);
$uploadData = json_encode($value);
这将创建json对象。然后我将它发送到javascript函数并将其作为一个名为fileStatus的变量接收。
alert (fileStatus);
显示
{"result":"success","fileName":"cake"}
应该是好的。但是当我尝试做的时候
fileStatus.result or fileStatus.fileName
我收到一条错误消息,说明它们未定义。请帮助我真的坚持这个。感谢。
答案 0 :(得分:3)
此时fileStatus
只是一个字符串,因此它没有result
和fileName
等属性。您需要使用Firefox的原生JSON.parse或jQuery的jQuery.parseJSON等方法将字符串解析为JSON对象。
示例:强>
var fileStatusObj = jQuery.parseJSON(fileStatus);
答案 1 :(得分:2)
如果警报显示{"result":"success","fileName":"cake"}
,那么您可能仍然需要将字符串转换为JSON对象。根据您正在开发的浏览器,您可以使用native JSON支持或JSON.org实现将字符串转换为对象。从那以后它应该按预期工作。
答案 2 :(得分:1)
设置变量时,请勿在其周围加上引号。只需设置如下变量:
var fileStatus = <?php echo $uploadData; ?>;
或:
var fileStatus = <?=$uploadData?>;
不要这样做:
var fileStatus = '<?php echo $uploadData; ?>';