Javascript PHP无法使用json_decode访问对象的属性值
我有两个php文件,我们称之为UploadImages.php和Caller.phpJavascript PHP无法使用json_decode访问对象的属性值,javascript,php,Javascript,Php,我有两个php文件,我们称之为UploadImages.php和Caller.php <?php include "UploadImages.php"; $uploadResult = json_decode(UploadImages(), true); if($uploadResult["UploadOk"] == 1) { // do something else } else { echo $uploadResult["UploadMsg"
<?php
include "UploadImages.php";
$uploadResult = json_decode(UploadImages(), true);
if($uploadResult["UploadOk"] == 1) {
// do something else
}
else {
echo $uploadResult["UploadMsg"];
}
?>
<?php
include "UploadImages.php";
$uploadResult = UploadImages();
if($uploadResult["UploadOk"] == 1) {
// do something else
}
else {
echo $uploadResult["UploadMsg"];
}
?>
因此,在UploadImages.php中,我有一个如下的函数
<?php
function UploadImages(){
$result = [
"UploadOk" => 0,
"UploadMsg" => "Upload successful" ];
echo(json_encode($result));
}
?>
我所期望的只是UploadMsg属性,它返回一个对象,请注意,我实际上需要在Caller.php中处理UploadOk,而不是将整个对象转储到javascript,因此javascript中的JSON.parse方法不是处理这种情况的正确方法。
echo
内部UploadImages
返回对象,因为PHPecho
发送响应头,因此通过ajax调用可以从该方法获得响应
使用以下命令更改方法,然后重试:
function UploadImages(){
$result = [
"UploadOk" => 0,
"UploadMsg" => "Upload successful" ];
return json_encode($result);
}
注意:您也不需要在UploadImages
内部使用json\u encode
,只需按如下方式返回数组:
function UploadImages(){
$result = [
"UploadOk" => 0,
"UploadMsg" => "Upload successful" ];
return $result;
}
在Caller.php中
<?php
include "UploadImages.php";
$uploadResult = json_decode(UploadImages(), true);
if($uploadResult["UploadOk"] == 1) {
// do something else
}
else {
echo $uploadResult["UploadMsg"];
}
?>
<?php
include "UploadImages.php";
$uploadResult = UploadImages();
if($uploadResult["UploadOk"] == 1) {
// do something else
}
else {
echo $uploadResult["UploadMsg"];
}
?>
此$result=[“UploadOk”=>0,“UploadMsg”=>“上载成功”]
是一个数组,不是一个Json对象您需要返回值,而不是为第二个脚本返回值。您正在echo
处理Json,而不是return
按您的意愿处理它。UploadImages()
不返回任何内容,因此Json\u解码(UploadImages(),true)
返回NULL
@deceze我喜欢你的想法