3

我在我的主文件 (main.php) 中设置了一个变量,并且需要第二个文件 (uploads.php) 来引用在第一个文件中设置的变量。它现在返回未定义。

第二个文件使用 $.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 但不是拉取值,它只是返回未定义。Uploads.php 加载到上传 div 中,但没有设置帐户名称,内容只是空白。

我需要通过 ajax 将变量传递给 Uploads.php 吗?我已经尝试过会话变量,但无法让它工作。我正在尝试一个 ajax 请求,但我是新手,所以无法确定。任何帮助都会很棒。

4

4 回答 4

2

会话变量毕竟应该起作用。确保您具备以下条件:

Main.php

session_start();

$_SESSION["account_name"] = "test";

Uploads.php 中

echo $_SESSION["account_name"];
于 2013-09-10T15:57:06.140 回答
1

您可以在 jQuery 调用中将其作为 GET 参数传递,例如:

jQuery('#uploads').load('uploads.php?account=<?php echo($accountName);?>');

然后在您的uploads.php文件中从请求中获取它,例如:

$accountName = $_GET['account'];

其他一些选项是将其存储在会话中、设置 cookie 或使用 jQuery .post 将其作为 POST 数据发送。

于 2013-09-10T15:56:27.950 回答
1

由于您正在使用 jQuery,您可能需要查看http://api.jquery.com/jQuery.post/

您的代码应该类似于(不确定是否准确)

$.post('uploads.php', { account_name: "<?= get_option('account_name') ?>" }, function(data) {
  $('.result').html(data);
});

然后你可以通过引用在你的 uploads.php 中使用这个变量$_POST['account_name']

PS:我假设您使用的是 PHP 5.4x

于 2013-09-10T15:58:41.753 回答
0

在会话中保存帐户名称

主文件

<?php 
session_start();
$accountName = get_option('account_name'); 
$_SESSION['accountName'] = $accountName;
?>

上传.php

<?php echo $_SESSION['accountName']; ?>
于 2013-09-10T15:57:23.733 回答