【问题标题】:Getting data out of this array in JS在 JS 中从这个数组中获取数据
【发布时间】:2017-01-31 20:10:55
【问题描述】:

最后我从 PHP 中得到了一些输出,而不仅仅是“数组”这个词。这花了我一天的时间,啊啊啊啊。

(解决方法见here

所以这是来自 XMLHTTP 请求(到 PHP)的返回值,通过 JS 中的回调。我用 PHP 中的print_r 得到了它。

我在这里发布了结果的 sn-p。 我的新问题:

  • 这个数据结构是由什么组成的?
  • 如何从这个结构中取出元素,例如 CourseID(在 JS 中)?

    [0] => Parse\ParseObject Object
    (
        [serverData:protected] => Array
            (
                [CourseID] => DEMO2
                [EndDate] => DateTime Object
                    (
                        [date] => 2017-03-31 10:26:00.000000
                        [timezone_type] => 2
                        [timezone] => Z
                    )
    
                [InfoTitle1] => Welcome
                [InfoText1] => Welcome to your course, called "sense & sales". 
                [Admin] => Remco@Demo1
            )
    

我的 PHP 代码是

function getGroups(){
  $query = new ParseQuery("CourseInfo");
 $query->equalTo("Admin", "Remco@Demo1");
 $results = $query->find();


// echo $results      // this lead to the string "array"
//print_r($results);  // this leads to the complicated array
//echo "<script>\r\n var phpOutput = " . json_encode($results) . ";\r\n console.log(phpOutput);\r\n</script>";
// this leads to [{},{}]; 
}

【问题讨论】:

  • 可能类似于$data[0]-&gt;CourseId
  • 您需要在标记或 AJAX 调用中序列化您的数组。
  • 您已标记此 JavaScript,但我没有在问题中看到任何 JavaScript。而且这个问题应该独立存在,不需要别人回头看看你的另一个问题。

标签: javascript arrays


【解决方案1】:

你想要的是一个 JavaScript 对象,所以你需要使用 JSON。

(JSON 表示 JavaScript 对象表示法。)

PHP 有一个 json_encode 函数,它将为您完成工作:(http://php.net/manual/en/function.json-encode.php)

json_encode — 返回值的 JSON 表示形式

试试这个:

PHP:

echo "<script>\r\n var phpOutput = " . json_encode($output) . ";\r\n console.log(phpOutput);\r\n</script>";

在浏览器中按 F12 可在开发者工具中打开浏览器的控制台日志窗口以查看新的 JavaScript 对象。

【讨论】:

  • 感谢肖恩!我更改了 $ouput 然后它输出:
  • 检查变量名你json_encodeing。是$output吗?如果不是,则将该变量更改为应有的值。这就是为什么包含有问题的代码很有帮助的原因。
  • 请使用 PHP 代码更新您的问题,以便我们查看您可能做错了什么。
【解决方案2】:

您可能希望先通过json_encode() 将您的 PHP 对象转换为 JSON。

这将允许您在 JavaScript 中轻松地使用它,就像您通常使用任何 JavaScript 对象一样。

【讨论】:

  • 一般情况下会这样,但使用此 Parse 数据则不会。这就是问题所在……
【解决方案3】:

我停止尝试在 JS 中使用这个数组/对象。但相反,我在 PHP 端管理它并将结果发送给 JS。

现在一切都很简单。 (-;

【讨论】:

  • 你把结果发给JS是什么意思?
  • 当然。我的意思是“回显”它给 JS(我不知道这应该叫什么(-;)
  • 我问的原因是因为页面加载时有回显,然后是 AJAX,所以我想澄清一下。谢谢
  • 我不知道这个。会研究一下!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-10
  • 2017-08-06
  • 2011-07-28
  • 2019-09-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多