2014-07-01 96 views
-1

我有一个PHP文件,创建一个随机化的字符串存储在一个变量。我想用JavaScript访问这个变量,但我在网上找到的方法似乎没有工作。这是我到目前为止的代码:如何使用JavaScript访问PHP变量?

var test = "<?php echo json_encode($myVariable); ?>"; 
alert(test); 

$ MYVARIABLE只是一个字符串:“测试”。

我认为“测试”会提醒,但代码本身是(<?php echo json_encode($myVariable); ?>)。当我拿走报价时,什么都没有发生。我对JavaScript很陌生,所以我不确定有什么不对。有没有另一种方法可以用JavaScript访问PHP变量?

+4

看起来PHP没有被处理。你是否在启用了PHP的服务器上运行该脚本,并且页面是否以'.php'结尾? – j08691

+0

您是否确定您的JavaScript文件正在被PHP处理,即它是否在.php文件中? – reaxis

+0

对于这两个问题都是。 – Carmen

回答

-1

json_encode产生输出准备的JavaScript,你不能把它放到引号:

var test = <?php echo json_encode($myVariable); ?>; 
+1

虽然这是真的,但这不是问题。 – MightyPork

+0

如果我不包括报价,那么根本没有任何反应。 – Carmen

+0

我的猜测是你在'.js'文件中试过这个。 – Marek

-1

试试看的其他方式...

<?php echo "var test = '" . json_encode($myVariable) . "';"; ?>  
+2

如果PHP不处理文件,这两个都不起作用。 – MightyPork

+0

@MightyPork恩,是的,我试图排除这一点。我认为在我们没有看到的代码中有其他错误。 (可能缺少<?php) – bsoist

0

你可以通过这个

传递变量内容
var test = "<?php echo $myVariable; ?>"; 
alert(test); 
+2

由于您已附加并预先占用空间,因此不会给出相同的变量。 – Popnoodles

0

我不知道为什么人们投票这样的问题,因为这种类型是起诉对于新开发者来说非常普遍。

有很少的方式访问来自PHP AJAX/Cookies/_SESSION的PHP变量或回声直接到JavaScript。

AJAX

具有更好的分离层之间还允许异步传输更具可读性。但它可以是非常缓慢的添加HTTPrequest可以导致网站减速很多,如果有很多的变量要求从PHP。

饼干

我不推荐它一样会有很多必要的数据存储在客户端。

_SESSION

我建议你使用_SESSION作为新的开发者会发现它更容易使用。它的作用类似于Cookie,但唯一的区别是一旦页面关闭,数据就会被删除。

回声直接给JavaScript

容易实现,但可怕的代码的做法。

上述所有答案我解释的主题很模糊,请先查看_SESSION,然后在适当的情况下转到AJAX。

代码示例

PHP

如果你从MySQL中获取数据

$_SESSION["AnyVariable"] = my_sql_query ("SELECT someData FROM someTable") 

或者,如果它只是在PHP

$SESSION["aVariable"] = whateverValue; 

的JavaScript

变量