【问题标题】:Use AJAX to pass a php array to an external javascript file使用 AJAX 将 php 数组传递给外部 javascript 文件
【发布时间】:2017-12-17 16:23:18
【问题描述】:

我有一个 php 文件,它需要将一个数组传递给一个外部 javascript 文件。我正在尝试使用AJAX 来做到这一点,因为这似乎是正确的做法。我正在尝试做一个echo json_encode($exif),然后在 js 中获取它,但 json 打印在我当前的页面上。我怎样才能实现我正在做的事情以及正确的方法是什么?

我正在尝试执行此答案How to pass variables and data from PHP to JavaScript? 的第一个解决方案,但我看不到如何集成 php 部分,使其不会显示在我的页面上。

这是 php 代码。我需要在构建视图时传递数组。因此,当我执行回显时,整个数组都会显示在页面上。

public function makeImagePage($image) 
{
    ...
        $this->parts["content"] .= "<p><u>Localisation:</u> </p>";
        $this->parts["content"] .= '<div id ="map"></div>';
        echo json_encode($exif);
        $this->parts["content"] .= '<script type="text/javascript" src="js/map.js"></script>';
    ...
}

【问题讨论】:

  • 您不想在您的页面上显示哪些内容?请提供更多代码、错误示例、您所期望的示例。
  • @IncredibleHat 我添加了 php 代码。希望它有助于理解我的问题。我不知道我必须如何以及在哪里传递我的数组。
  • 啊,我明白了。您应该将它放在 script 标记中以进行 js var 分配。清空script 标签,而不是带有src= 的标签。

标签: javascript php arrays ajax


【解决方案1】:

改变这个:

    $this->parts["content"] .= "<p><u>Localisation:</u> </p>";
    $this->parts["content"] .= '<div id ="map"></div>';
    echo json_encode($exif);
    $this->parts["content"] .= '<script type="text/javascript" src="js/map.js"></script>';

为此,将数据放入一个javascript区域供您使用:

    $this->parts["content"] .= "<p><u>Localisation:</u> </p>";
    $this->parts["content"] .= '<div id ="map"></div>';
    $this->parts["content"] .= '<script>var my_var = '. json_encode($exif) .';</script>';
    $this->parts["content"] .= '<script type="text/javascript" src="js/map.js"></script>';

这是假设您的 map.js 在任何地方都在使用该变量,并且您必须设置正确的 js 变量名称,并相应地调整 map.js 代码等。

这只是将 php 数据获取到某个地方供 js 使用的第一步。

【讨论】:

    猜你喜欢
    • 2015-03-11
    • 2018-02-19
    • 2018-07-15
    • 2015-08-07
    • 2014-05-12
    • 2021-02-10
    • 1970-01-01
    • 1970-01-01
    • 2020-10-29
    相关资源
    最近更新 更多