我从网址获取用户ID。 这就是我现在所拥有的。我想用$ userid替换那个,但我不知道如何。它不起作用,我似乎无法找到正确的语法,请有人帮忙吗?
function returnimages($dirname = "Photos/1")
基本上我正在尝试使用html,php和javascript创建照片幻灯片。在我开始在我的代码中添加php之前,我有一些工作。我有html和外部JavaScript改变了照片,它们在循环中淡入淡出。我在javascript中有一个照片数组。现在我正在尝试将php添加到我的html中。我希望能够通过url获取userid然后从中获取从特定路径到目录中userid的照片。然后我希望创建这些照片的数组,并在我的JavaScript中使用它们。这是我的html中嵌入的PHP代码:
<?php
$user_id = $_GET['userid'];
print " Hi, $user_id ";
function returnimages($dirname = "Photos/1") { //will replace 1 with userid once something starts working
$pattern="(\.jpg$)|(\.png$)|(\.jpeg$)|(\.gif$)"; //valid image extensions
$files = array();
$curimage=0;
if($handle = opendir($dirname)) {
while(false !== ($file = readdir($handle))){
if(eregi($pattern, $file)){ //if this file is a valid image
//Output it as a JavaScript array element
echo 'galleryarray['.$curimage.']="'.$file .'";';
$curimage++;
}
}
closedir($handle);
}
return($files);
}
echo 'var galleryarray=new Array();'; //Define array in JavaScript
returnimages() //Output the array elements containing the image file names
?>
我的javascript:
$(document).ready(function(){
var photodisplay =
[
$("#photo1"),
$("#photo2"),
$("#photo3"),
$("#photo4"),
$("#photo5"),
];
//photodisplay[0].hide().fadeIn(3000);
var user = new Array();
[1, 2, 3, 4, 5];
// 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
var userphoto = <? echo json_encode($galleryarray); ?>;
function preloadingPhotos() {
for (var x=0; x<5; x++)
{
photodisplay[x].attr("src", "Photos/1" + 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;
}); //结束准备
我的网址是获取用户ID:
http://example.com/code.php?user_id=1
感谢您的时间!
答案 0 :(得分:1)
问题是你总是设置dirname而不是让调用函数设置它。你可以改变:
function returnimages($dirname = "Photos/1") {
到
function returnimages($dirname) {
因为$dirname
总是Photo/1
。然后,当您调用该函数时,请使用:
returnimages('Photos/'.$user_id);
答案 1 :(得分:0)
您可以使用点'。'在PHP中连接。这将连接两个字符串,然后将它们分配给变量$ dirname。例如:
$dirname = "Photos/" . $_GET['ID'];
然后可以将变量$ dirname放在函数returnimages中,例如:
returnimages($dirname);