Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PHP无法使用json_decode访问对象的属性值_Javascript_Php - Fatal编程技术网

Javascript PHP无法使用json_decode访问对象的属性值

Javascript 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文件,我们称之为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 = 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
返回对象,因为PHP
echo
发送响应头,因此通过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我喜欢你的想法