我知道它真的很简单,但我是新手。我想通过JS(用于open-flash-chart)将PHP查询中的变量传递给PHP的数据文件。
这是我的PHP文件中的JS。我很认真,我的问题是JS部分,因为我之前从未使用它。
<script type="text/javascript" src="js/swfobject.js"></script>
<script type="text/javascript">
var player = "<? echo $player1 ?>";
swfobject.embedSWF(
"open-flash-chart.swf", "my_chart", "900", "350", "9.0.0", "expressInstall.swf", {"data-file":"data2.php"} );
</script>
我正在尝试将$ player变量传递给图形数据文件,这是(data2.php)
<?php
include("include/session.php");
include 'open-flash-chart/php-ofc-library/open-flash-chart.php';
if (isset($_GET['player'])) {
$player = $_GET['player']; }
$sql = "SELECT pos FROM nflscore where username = '$player'";
答案 0 :(得分:0)
data2.php?variable="whatever variable"
在php端做
$variable=$_GET["variable"];
now variable是你传递的变量,你可以用它做你想做的事
答案 1 :(得分:0)
假设您想使用var播放器,请在swfobject.embedSWF调用中更改此内容
{"data-file":"data2.php?player=" + player }
答案 2 :(得分:0)
这很大程度上取决于您的需求!
javascript会改变那个变量吗?如果没有,在PHP页面之间传输数据的最佳方式是会话!还有其他选项,如cookies,获取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']}'";
Using cookies反而完全相同,你只需要在脚本开头就开始会话(但如果它是游戏你应该依赖它们)!什么是最好的,你也可以在你的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需要更改变量的内容,情况会有所不同