【发布时间】:2014-02-09 01:11:22
【问题描述】:
我正在尝试在我的外部 JavaScript 中使用 PHP 中创建的数组。我有 PHP 代码,它根据通过 url 给出的用户 ID 将目录中的图像放入一个数组中,我希望能够在 javaScript 中使用这个数组,以便我可以创建照片幻灯片并根据用户 ID 更改图像.我认为这是可以实现的,因为我在网上进行了研究,但不知何故它对我不起作用。我不确定我做错了什么。
在我的 html 的头部,我有这段代码可以添加到我的外部 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(function(){
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:
【问题讨论】:
-
您的网络服务器不太可能配置为在将它们发送到客户端之前通过 PHP 解释器运行 javascript 文件,因此 PHP 永远不会被执行/评估。我建议最好在 javascript 中使用 AJAX 调用来获取数据,而不是编写内联 PHP。
-
我是编码新手,对你所说的有点困惑。我认为 PHP 如果执行它会回显用户 ID 和数组。嗨,2 var galleryarray=new Array();galleryarray[0]="Lighthouse.jpg";galleryarray[1]="Koala.jpg";galleryarray[2]="1.jpg";galleryarray[3]=" 2.jpg";galleryarray[4]="Jellyfish.jpg";不知道为什么我为这个问题提供的 PHP 代码没有显示。
标签: javascript php jquery html arrays