在javascript文件中嵌入PHP脚本输出
php将回显WordPress post特色图片的URL。 我正在尝试将此URL嵌入file2.js文件中的img标记中 file1.php在javascript文件中嵌入PHP脚本输出,javascript,php,wordpress,wordpress-theming,Javascript,Php,Wordpress,Wordpress Theming,php将回显WordPress post特色图片的URL。 我正在尝试将此URL嵌入file2.js文件中的img标记中 file1.php <?php $url = wp_get_attachment_url( get_post_thumbnail_id($post->ID), 'thumbnail' ); ?> <?php echo $url ?> 只需将PHP输出嵌入javascript图像标记中。非常感谢您的准确回答。假设您使用的是jQuery的$.get
<?php $url = wp_get_attachment_url( get_post_thumbnail_id($post->ID), 'thumbnail' ); ?>
<?php echo $url ?>
只需将PHP输出嵌入javascript图像标记中。非常感谢您的准确回答。假设您使用的是jQuery的$.get(),那么您需要的是:
$.get("/wp-content/plugins/mjv_sample_plugin/file1.php", function(mjvdata) {
var mjvfiurl = mjvdata;
var fapDom = '<div id="fap-wrapper"><img src="'+mjvfiurl+'" alt="" /></div>';
$('body').append(fapDom);
});
$.get(“/wp content/plugins/mjv\u sample\u plugin/file1.php”,函数(mjvdata){
var mjvfiurl=mjvdata;
var fapDom=“”;
$('body').append(fapDom);
});
您的问题是,由于您正在执行异步调用,mjvfiurl
可能在您附加到正文时没有定义,因为发送的获取URL的请求尚未完成
当您进行异步调用时,其余的JavaScript将被执行。
<script type="text/javascript">
phpVars = new Array();
<?php foreach($vars as $var) {
echo 'phpVars.push("' . $var . '");';
};
?>
</script>
<script type="text/javascript" src="yourScriptThatUsesPHPVars.js"></script>
phpVars=新数组();
如果您只需要将变量从PHP传递到javascript,那么可以使用javascript在PHP/html文件中创建一个标记。如果您试图调用函数,那么您可以这样做
<script type="text/javascript">
functionOne(<?php echo implode(', ', $arrayWithVars); ?>);
functionTwo(<?php echo $moreVars; ?>, <?php echo $evenMoreVars; ?>);
</script>
<script type="text/javascript" src="YourFunctions.js"></script>
函数一();
函数二(,);
可能重复@Patrick-抱歉,我不认为它与您提供的内容重复。它是重复的,因为您的问题是您使用的是异步方法,但在尝试使用数据之前没有等待它完成,这一点在链接的重复项中有所涉及。检查这里解决的问题我投票支持@Patrick的评论,因为该帖子的公认答案更详细地阐述了同步和异步编程之间的区别,并给出了如何解决确切问题的示例。
$.get("/wp-content/plugins/mjv_sample_plugin/file1.php", function(mjvdata) {
var mjvfiurl = mjvdata;
var fapDom = '<div id="fap-wrapper"><img src="'+mjvfiurl+'" alt="" /></div>';
$('body').append(fapDom);
});
<script type="text/javascript">
phpVars = new Array();
<?php foreach($vars as $var) {
echo 'phpVars.push("' . $var . '");';
};
?>
</script>
<script type="text/javascript" src="yourScriptThatUsesPHPVars.js"></script>
<script type="text/javascript">
functionOne(<?php echo implode(', ', $arrayWithVars); ?>);
functionTwo(<?php echo $moreVars; ?>, <?php echo $evenMoreVars; ?>);
</script>
<script type="text/javascript" src="YourFunctions.js"></script>