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

如何将数据JSON字符串从PHP传递到外部javascript,javascript,php,html,Javascript,Php,Html,我有一个从文本文件加载JSON对象字符串的php页面。我想将对象字符串发送到一个外部javascript文件,该文件最终将使用它更新php页面中显示的html。不幸的是,我无法将字符串发送到外部javascript 我一直在努力遵循阿夫扎尔·艾哈迈德在这里概述的方法 但我没有得到任何结果 php: <?php session_start(); echo 'Hello ' . $_SESSION['first'] . '<br>'; loadUserData(); displa

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

我一直在努力遵循阿夫扎尔·艾哈迈德在这里概述的方法 但我没有得到任何结果

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>

loadUserData函数没有返回任何内容

您应该删除
echo$userString
并在文件\u get\u内容后添加一个
return$user


您应该更改
loadUserData()
$user=loadUserData()

发生这种情况是因为您没有在函数
loadUserData
中将
$user
声明为

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

function loadUserData() {
    global $user;

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

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