首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在外部Javascript中使用PHP变量

问如何在外部Javascript中使用PHP变量
EN

Stack Overflow用户
提问于 2014-01-20 08:00:10
回答 3查看 176关注 0票数 3

我尝试在我的外部javaScript中使用用PHP创建的数组。我有PHP代码,把图片从目录中根据通过url给出的userid放到一个数组中,我希望能够在javaScript中使用这个数组,这样我就可以创建一个照片幻灯片,并根据userid改变图片。我认为这是可以实现的,因为我在网上进行了研究,但不知何故,它就是不适用于我。我不确定我做错了什么。

在html的头部,我有以下代码来添加到我的外部Javascript中,并在javaScript中声明变量/数组。不确定它是否正确,我在这里从一个解决方案中获得了它:

代码语言:javascript
复制
<script src="js/jquery-1.10.2.min.js"></script>
    <script type="text/javascript">var userphoto = "<?= $galleryarray ?>";</script>
    <script type="text/javascript">var userid = "<?= $user_id ?>";</script>
    <script src="javascript.js"></script>

下面是我的基本HTML中的PHP代码:

下面是我的外部JavaScript代码:

$(文档)函数(.ready(){

代码语言:javascript
复制
var photodisplay = 
[
$("#photo1"),
$("#photo2"),
$("#photo3"),
$("#photo4"),
$("#photo5"),
];

var userid = "<?php echo json_encode($user_id); ?>";  // getting php variable 
var userphoto = "<?php echo json_encode(galleryarray); ?>";


// List of images for user one
/*var userphoto = new Array();
userphoto[0] = "Photos/1/1.jpg";
    userphoto[1] = "Photos/1/2.jpg";
        userphoto[2] = "Photos/1/1.jpg";
            userphoto[3] = "Photos/1/1.jpg";
                userphoto[4] = "Photos/1/1.jpg";*/

//preloading photos
function preloadingPhotos() {
for (var x=0; x<5; x++)
{
    photodisplay[x].attr("src", "Photos/" + userid + "/" + userphoto[x]);
    photodisplay[x].hide();
    console.log("preloaded photos");

}
displayPhoto();
}

function displayPhoto(){

    photodisplay[0].fadeIn(3000);
    photodisplay[0].delay(3000).fadeOut(3000, function() { //first callback func
    photodisplay[1].fadeIn(3000);
    photodisplay[1].delay(3000).fadeOut(3000, function() { //second callback func
    photodisplay[2].fadeIn(3000);
    photodisplay[2].delay(3000).fadeOut(3000, function() { //third callback func
    photodisplay[3].fadeIn(3000);
    photodisplay[3].delay(3000).fadeOut(3000, function() { // fourth callback func
    photodisplay[4].fadeIn(3000);
    photodisplay[4].delay(3000).fadeOut(3000, function() {
    setTimeout(displayPhoto(), 3000);
    });
    }); 
    });
    }); 
    });

}// end of function displayPhoto


window.onload = preloadingPhotos;
}); //end ready

PHP:

EN

回答 3

Stack Overflow用户

发布于 2014-01-20 08:12:15

让您的PHP定义<script>标记内的变量,如下所示……

代码语言:javascript
复制
<script>
    var userid = "<?php echo json_encode($user_id); ?>";
    var userphoto = "<?php echo json_encode(galleryarray); ?>";
</script>

接下来的外部javascript文件将能够使用userid和userphoto变量,即使它们不是直接在外部文件中定义的

票数 0
EN

Stack Overflow用户

发布于 2014-01-20 08:17:37

在下面的代码中,userphoto和userid现在是javascript变量。

代码语言:javascript
复制
<script src="js/jquery-1.10.2.min.js"></script>
<script type="text/javascript">var userphoto = "<?= $galleryarray ?>";</script>
<script type="text/javascript">var userid = "<?= $user_id ?>";</script>
<script src="javascript.js"></script>

Php代码将不会在外部javascript文件中执行。因此,当执行以下代码行时,userid将是一个以"<?php echo json_encode($user_id);?>“作为其值的字符串,对于userphoto也是类似的。

代码语言:javascript
复制
var userid = "<?php echo json_encode($user_id); ?>";  // getting php variable 
var userphoto = "<?php echo json_encode(galleryarray); ?>";

将您的基本HTML修改为

代码语言:javascript
复制
<script src="js/jquery-1.10.2.min.js"></script>
<script type="text/javascript">var userphoto = <?php echo json_encode(galleryarray); ?>;     </script>
<script type="text/javascript">var userid = <?php echo json_encode($user_id); ?>;</script>
<script src="javascript.js"></script>

您可以在外部javascript文件中使用这些变量,只要它是在这些变量赋值之后加载的。所以你不需要在外部javascript中再次赋值这些变量。

票数 0
EN

Stack Overflow用户

发布于 2014-01-20 08:25:53

只需将名为javascript.js的文件重命名为javascript.php,并将脚本标记更改为<script src="javascript.php"></script>

更新

您还可以通过在.htaccess文件中执行类似以下操作,使用.htaccess保持脚本在javascript.js标记中的原样:

代码语言:javascript
复制
RewriteRule ^javascript\.js$ javascript.php 

有关在这种情况下使用.htaccess的更多详细信息,请查看以下问题的答案:

Parsing PNG as PHP via htaccess works only on local server but not on webserver

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21224289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档