這是我的代碼的一部分,以顯示我的頁面上的專輯。如果我打電話這樣的功能調用函數與參數作爲字符串不工作
<?php
for ($key_Number = 0; $key_Number < count($album); $key_Number++) {
echo '<a href="#" onclick="return false" onmousedown="ajax_json_gallery("gallery1)">Gallery1</a><br>';
}
?>
<script type="text/javascript">ajax_json_gallery('gallery1');</script>
它工作正常。 gallery1是我的服務器上的一個文件,裏面有測試照片。如果我這樣稱呼它
<?php
for ($key_Number = 0; $key_Number < count($album); $key_Number++) {
echo '<a href="#" onclick="return false" onmousedown="ajax_json_gallery($album[$key_Number])">'.$album[$key_Number].'</a><br>';
}
?>
<script type="text/javascript">ajax_json_gallery($album[$key_Number]);</script>
它不起作用。我究竟做錯了什麼?有任何想法嗎? 我需要根據用戶傳遞不同的字符串,所以我需要給它一個變量。 是的,我的數組$相冊包含正確的文件夾名稱。
這裏是被調用的函數。
<script type="text/javascript">
function ajax_json_gallery(folder){
var thumbnailbox = document.getElementById("thumbnailbox");
var pictureframe = document.getElementById("pictureframe");
var hr = new XMLHttpRequest();
hr.open("POST", "json_gallery_data2.php", true);
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
hr.onreadystatechange = function() {
if(hr.readyState == 4 && hr.status == 200) {
var d = JSON.parse(hr.responseText);
pictureframe.innerHTML = "<img src='"+d.img1.src+"'>";
thumbnailbox.innerHTML = "";
for(var o in d){
if(d[o].src){
thumbnailbox.innerHTML += '<div onclick="putinframe(\''+d[o].src+'\')"><img src="'+d[o].src+'"></div>';
}
}
}
}
hr.send("folder="+folder);
thumbnailbox.innerHTML = "requesting...";
}
function putinframe(src){
var pictureframe = document.getElementById("pictureframe");
pictureframe.innerHTML = '<img src="'+src+'">';
}
這裏是獲取頁面中的照片json_gallery_data2.php
<?php
header("Content-Type: application/json");
$folder = $_POST["folder"];
$jsonData = '{';
$dir = $folder."/";
$dirHandle = opendir($dir);
$i = 0;
while ($file = readdir($dirHandle)) {
if(!is_dir($file) && preg_match("/.jpg|.gif|.png/i", $file)){
$i++;
$src = "$dir$file";
$jsonData .= '"img'.$i.'":{ "num":"'.$i.'","src":"'.$src.'", "name":"'.$file.'" },';
}
}
closedir($dirHandle);
$jsonData = chop($jsonData, ",");
$jsonData .= '}';
echo $jsonData;
?>
你可能想試試這個 '回聲「'.$album[$key_Number].'
」;' – sulavvr
使用一些先進的事件註冊方法 –