无法在Eclipse IDE中将php变量传递给javascript

时间:2015-05-17 02:09:19

标签: javascript php eclipse eclipse-pdt

我需要通过将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问题?

由于

1 个答案:

答案 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>

中生成cdata
<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>

请注意使用包含双引号的单引号。这使双引号成为输出的一部分。