我有一个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);
答案 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);
}