0

我知道它真的很简单,但我是一个新手。我想通过 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'";
4

3 回答 3

0

好吧,这几乎取决于您的需求!

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 中访问 c​​ookie!

所以这就是你的第一页应该是什么样子:

<?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 需要更改变量的内容,情况会有所不同

于 2012-11-26T02:26:06.743 回答
0

假设你想使用 var player 在你的 swfobject.embedSWF 调用中改变它

{"data-file":"data2.php?player=" + player }
于 2012-11-25T01:26:09.243 回答
0
data2.php?variable="whatever variable"

在php方面做

$variable=$_GET["variable"];

现在变量是你传递的变量,你可以用它做你想做的事

于 2012-11-25T00:22:36.510 回答