我的主文件(main.php)中有一个变量集,需要第二个文件(uploads.php)来引用第一个文件中设置的变量。它现在正在返回undefined。
第二个文件用$ .load加载到第一个文件中:下面的代码示例 -
Main.php内容:
<?php $accountName = get_option('account_name'); ?>
<div id="uploads"></div>
<a href="#" onclick="loadUploadsFile()">Load Your Playlist</a>
function loadUploadsFile() {
jQuery('#uploads').load('uploads.php');
}
Uploads.php文件内容
<?php echo $account_name; ?> <== returns undefined
$url = 'http://www.somewebsite.com/' . $accountName . '/page/'
/* more code below running a query/loop etc. */
正如您可能知道的那样,我希望Uploads.php在Main.php中引用变量decleration但是没有提取值,它只是返回undefined。 Uploads.php加载到uploads div中,但如果没有设置帐户名,则内容只是空白。
我是否需要通过ajax将变量传递给Uploads.php?我已经尝试了会话变量,但无法使其工作。我正在尝试一个ajax请求,但我是新手,所以无法得到那个钉子。任何帮助都会很棒。
答案 0 :(得分:2)
会话变量毕竟应该有效。确保您拥有以下内容:
在 Main.php
中session_start();
$_SESSION["account_name"] = "test";
在 Uploads.php
中echo $_SESSION["account_name"];
答案 1 :(得分:1)
您可以在jQuery调用中将其作为GET参数传递,如:
jQuery('#uploads').load('uploads.php?account=<?php echo($accountName);?>');
然后在您的 uploads.php 文件中从请求中获取它,如:
$accountName = $_GET['account'];
其他一些选项是将它存储在会话中,设置cookie或使用jQuery .post将其作为POST数据发送。
答案 2 :(得分:1)
由于您正在使用jQuery,因此您可能需要查看http://api.jquery.com/jQuery.post/。
你的代码应该是(确实不确定)
$.post('uploads.php', { account_name: "<?= get_option('account_name') ?>" }, function(data) {
$('.result').html(data);
});
然后您可以通过引用$_POST['account_name']
在您的uploads.php中使用此变量。
PS:我假设您使用的是PHP 5.4x
答案 3 :(得分:0)
在会话中保存帐户名称
<强> Main.php 强>
<?php
session_start();
$accountName = get_option('account_name');
$_SESSION['accountName'] = $accountName;
?>
<强> Uploads.php 强>
<?php echo $_SESSION['accountName']; ?>