如何将数据JSON字符串从PHP传递到外部javascript

时间:2019-04-14 15:35:07

标签: javascript php html

我有一个php页面,可从文本文件加载JSON对象字符串。我想将对象字符串发送到外部javascript文件,该文件最终将使用它来更新从php页面显示的html。不幸的是,我无法将字符串发送到外部javascript。

我一直在尝试遵循Afzal Ahmad概述的方法 Pass Php Arrays to External Javascript File 但没有结果

php:

<?php

session_start();
echo 'Hello ' . $_SESSION['first'] . '<br>';
loadUserData();
displayPage();

function loadUserData(){
        $userString = 'userdata/'.$_SESSION['email'].'.txt';
    echo $userString;
    $user = file_get_contents($userString);
}

function displayPage(){
/*html stuff here*/
}

?>
<script type="text/javascript">var userObj = <?php echo json_encode($user); ?>;</script>
<script type="text/javascript" src="scripts/index.js"></script>

javascript:

console.log(userObj);

2 个答案:

答案 0 :(得分:1)

您的loadUserData函数未返回任何内容。

您应该删除echo $userString;,并在file_get_contents之后添加return $user

您应该将loadUserData();更改为$user = loadUserData();

答案 1 :(得分:0)

之所以会发生这种情况,是因为您没有在函数$user中将loadUserData声明为global variable

要解决此问题,您必须使用global关键字:

function loadUserData() {
    global $user;

    $userString = 'userdata/'.$_SESSION['email'].'.txt';
    echo $userString;
    $user = file_get_contents($userString);
}