2012-03-20 65 views
0

可能重复:
Pass a PHP string to a Javascript variable (including escaping newlines)你能从脚本访问php变量中的数据吗?

所以我不知道是否有可能访问数据的一个PHP变量,在一个jQuery/JavaScript的脚本。假设我有一个wordpress查询/循环,它会从数据库中调出一个特定的帖子。

那么,如果我存储在后一个PHP变量,有没有什么办法,我可以一个JavaScript /脚本中引用该变量/后的?

+0

真棒,谢谢你们。很多工作。 – 2012-03-20 19:34:52

回答

0

是的。您可以。

方案: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> 
0

你可以做一个PHP页面的下方。

<script> 
    alert("<?php echo $hello_world;?>"); 
</script> 

但是,这不会在.js文件中工作,因为它显然没有设置为解释PHP语法。

0

所以,当你的浏览器启动请求,它命中服务器。服务器处理请求,运行所有必要的方法并设置变量,然后将结果发送回浏览器。此时,任何不在会话中的东西都会死在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} 
0

能否谈谈在这样的脚本标签后内嵌(假设你在“循环”,只有一个输出后)输出信息:

<script> 
var post_id = <?php the_ID(); ?>; 
var post_title = "<?php the_title(); ?>"; 
var post_excerpt = "<?php the_excerpt(); ?>"; 
</script> 

但是,这取决于你想完成什么,你可能要以不同的方式处理这个。也许使用脚本以JSON格式输出发布数据,以便它可以被javascript本地理解,然后编写AJAX函数来检索和呈现这些帖子。这里有一些资源可能会有所帮助:

Wordpress JSON API jQuery AJAX