从JS传递变量到PHP

时间:2012-11-25 00:20:29

标签: php

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

3 个答案:

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