gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 16:10:17 26 4
gpt4 key购买 nike

我需要通过将 php 变量传递给 <some javascript>.js 来初始化一些 js 变量文件,在我的 Eclipe Luna IDE (PDT) 下的 php 项目中

当我尝试这样做时:

if (typeof strPreviewImg == 'undefined') {
strPreviewImg = <?php echo(plugin_dir_url( __FILE__ )."images/vpreview_center.png"); ?>;
}

我在 Eclipse 中遇到以下错误:

Multiple markers at this line - Syntax error, insert ": Expression" to complete Expression - Syntax error on token "<", invalid Expression - Syntax error on tokens, delete these tokens

当我尝试使用引号时:

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 问题?

谢谢

最佳答案

我已从您对 plugins_dir_url() 的使用中扣除您正在使用 WordPress。

在 WordPress 中,使用 wp_enqueue_script() 后要注册脚本句柄,您可以“本地化”数据以便在客户端全局访问。

使用 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);

可选您可以通过将 src URL 设置为 PHP 文件来使用 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>

然后在“your_php_file.php”中:

<?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>

请注意使用单引号括住双引号。这使得双引号成为输出的一部分。

关于javascript - 无法在 Eclipse IDE 中将 php 变量传递给 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30282635/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com