我需要通过将php变量传递给<some javascript>.js
文件,在我的Eclipe Luna IDE(PDT)下的php项目中初始化一些js变量
当我试图做的时候:
if (typeof strPreviewImg == 'undefined') {
strPreviewImg = <?php echo(plugin_dir_url( __FILE__ )."images/vpreview_center.png"); ?>;
}
我在Eclipse中遇到以下错误:
此行有多个标记 - 语法错误,插入&#34;:表达式&#34;完成表达 - 令牌上的语法错误&#34;&lt;&#34 ;,表达式无效 - 令牌上的语法错误,删除这些令牌
当我尝试使用引号时:
if (typeof strPreviewImg == 'undefined') {
strPreviewImg = "<?php echo(plugin_dir_url( __FILE__ ).\"images/vpreview_center.png\"); ?>";
}
整个php表达式作为字符串传递给我的HTML代码:
<video poster="<?php echo(plugin_dir_url( __FILE__ ).'images/vpreview_center.png)'; ?>">
那么,我做错了什么还是有一些Eclipse PDT问题?
由于
答案 0 :(得分:2)
我从您使用plugins_dir_url()
中扣除了您使用WordPress的费用。
在WordPress中,在使用wp_enqueue_script()
注册脚本句柄后,您可以&#34;本地化&#34;数据可在客户端全局访问。
使用WordPress / PHP:
<?php
$args = array(
'var1' => 'value 1',
'var2' => 'value 2'
);
wp_localize_script( 'your_handle', 'your_cdata', $args );
?>
会在您的文档<head>
<head>
<script type='text/javascript'>
/* <;![CDATA[ */
var your_cdata = {"var1":"value 1","var2":"value 2"};
/* ]]> */
</script>
</head>
那么你的javascript可以使用:
alert(your_cdata.var1);
alert(your_cdata.var2);
OPTIONALLY 您可以使用PHP通过将src URL设置为PHP文件来提供Javascript文件:
<script type="text/javascript" src="url_to_your_php_file.php" /></script>
或使用$ _GET变量
<script type="text/javascript" src="url_to_your_php_file.php?var1=value1" /></script>
然后在&#34; your_php_file.php&#34;:
<?php
header( 'content-type: text/javascript' );
// possible database query here using $_GET[$var1]
$value = 'some value';
?>
function name() {
var example1 = '<?php echo '"' . $value . '"'; ?>';
var example2 = '<?php echo '"some other data"'; ?>';
alert( example1 + ' / ' + example2 );
}
<?php
// and even do further includes to additional files (php, js, etc)
@include 'local_path_to_some_other_file.js';
exit;
?>
最后您可以自己复制WordPress示例:
<head>
<script type='text/javascript'>
/* <![CDATA[ */
var your_cdata = {
"var1":<?php echo '"value 1"'; ?>,
"var2":<?php echo '"value 2"'; ?>
};
/* ]]> */
</script>
请注意使用包含双引号的单引号。这使双引号成为输出的一部分。