好吧,这几乎取决于您的需求!
javascript会改变那个变量吗?如果没有,在 php 页面之间传输数据的最佳方式是会话!还有其他选项,例如 cookie、get vars、post vars 等,但如果用户这样做,用户可能会更改它们,从而使您的脚本处于处理错误信息的尴尬位置!
使用会话,您的第一页将如下所示:
<?php session_start(); $_SESSION['player'] = $player; ?>
<!-- [...] -->
<script type="text/javascript">
swfobject.embedSWF("open-flash-chart.swf", "my_chart", "900", "350", "9.0.0", "expressInstall.swf", {"data-file":"data.php"} );
</script>
<!-- [...] -->
session_start必须放在 php 文件的最开头,在该函数之前不应发送任何标题!
那么,您的数据文件将变成这样:
<?php session_start();
/* ...your includes and the rest... */
$sql = "SELECT pos FROM nflscore where username = '{$_SESSION['player']}'";
使用 cookie是完全一样的,您只是不必在脚本的开头开始会话(但如果它是一个游戏,您应该已经依赖它们)!不过最好的是,您之后也可以在您的 javascript 中访问 cookie!
所以这就是你的第一页应该是什么样子:
<?php setcookie('player', $player) // somewhere in the script ?>
<!-- [...] -->
<script type="text/javascript">
swfobject.embedSWF("open-flash-chart.swf", "my_chart", "900", "350", "9.0.0", "expressInstall.swf", {"data-file":"data.php"} );
</script>
<!-- [...] -->
您的数据页面也变为:
$sql = "SELECT pos FROM nflscore where username = '{$_COOKIE['player']}'";
第三个简单的选择是从一开始就将信息放在应该正确的位置;)所以没有会话,没有cookie,只是简单的获取变量!
第一个文件:
<!-- [...] -->
<script type="text/javascript">
swfobject.embedSWF("open-flash-chart.swf", "my_chart", "900", "350", "9.0.0", "expressInstall.swf",
{"data-file":"data.php?player=<?php echo $player ?>"} );
</script>
<!-- [...] -->
第二个文件:
$sql = "SELECT pos FROM nflscore where username = '{$_GET['player']}'";
如果您的 javascript 需要更改变量的内容,情况会有所不同