Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript文件中嵌入PHP脚本输出_Javascript_Php_Wordpress_Wordpress Theming - Fatal编程技术网

在javascript文件中嵌入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将回显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(),那么您需要的是:

$.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>