可能重复:
Pass a PHP string to a Javascript variable (including escaping newlines)你能从脚本访问php变量中的数据吗?
所以我不知道是否有可能访问数据的一个PHP变量,在一个jQuery/JavaScript的脚本。假设我有一个wordpress查询/循环,它会从数据库中调出一个特定的帖子。
那么,如果我存储在后一个PHP变量,有没有什么办法,我可以一个JavaScript /脚本中引用该变量/后的?
可能重复:
Pass a PHP string to a Javascript variable (including escaping newlines)你能从脚本访问php变量中的数据吗?
所以我不知道是否有可能访问数据的一个PHP变量,在一个jQuery/JavaScript的脚本。假设我有一个wordpress查询/循环,它会从数据库中调出一个特定的帖子。
那么,如果我存储在后一个PHP变量,有没有什么办法,我可以一个JavaScript /脚本中引用该变量/后的?
是的。您可以。
方案:1如果HTML和PHP是在单独的文件
HTML
<html>
<head>
<script type='text/javascript' src='code.php' runat='server'></script>
<script>
// you can get phpVar here
alert(phpVar);
</script>
</head>
<body>
</body>
</html>
code.php
<?php
$value =" Value from PHP";
echo "var phpVar = '". $value ."'";
?>
方案:2如果HTML和PHP是在同一个文件
<?php $value =" Value from PHP"; ?>
<html>
<head>
<script>
<?php echo "var phpVar ='" . $value ."'"; ?>
alert(phpVar);
</script>
</head>
<body>
</body>
</html>
你可以做一个PHP页面的下方。
<script>
alert("<?php echo $hello_world;?>");
</script>
但是,这不会在.js文件中工作,因为它显然没有设置为解释PHP语法。
所以,当你的浏览器启动请求,它命中服务器。服务器处理请求,运行所有必要的方法并设置变量,然后将结果发送回浏览器。此时,任何不在会话中的东西都会死在PHP端(即它不是持久的),所以没有办法让javascript访问这个php变量。
如果你想要做的是通过一个PHP变量或对象的JavaScript函数,我推荐使用json_encode: http://www.php.net/manual/en/function.json-encode.php
<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode($arr);
?>
上面的例子将输出:
{"a":1,"b":2,"c":3,"d":4,"e":5}
能否谈谈在这样的脚本标签后内嵌(假设你在“循环”,只有一个输出后)输出信息:
<script>
var post_id = <?php the_ID(); ?>;
var post_title = "<?php the_title(); ?>";
var post_excerpt = "<?php the_excerpt(); ?>";
</script>
但是,这取决于你想完成什么,你可能要以不同的方式处理这个。也许使用脚本以JSON格式输出发布数据,以便它可以被javascript本地理解,然后编写AJAX函数来检索和呈现这些帖子。这里有一些资源可能会有所帮助:
真棒,谢谢你们。很多工作。 – 2012-03-20 19:34:52