所以我現在嘗試了2個小時,而且我仍然無法弄清我的代碼出了什麼問題。我創建了一個簡單的XMLHttpRequest,它從PHP頁面獲取信息,這是來自數據庫的一些數據。這是我做了什麼:Uncaught TypeError:無法讀取json_encode()上未定義的屬性「長度」
var xhr2 = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
xhr2.open('GET', 'admin/images_data.php');
xhr2.onreadystatechange = function (e) {
var album_photos = eval(xhr2.responseText);
console.log(album_photos);
for (var i = 0; i < album_photos.length; i++) {
var td = document.createElement('td');
var imagewrap = document.createElement('div');
imagewrap.className = "image-wrap";
var imagemenu = document.createElement('div');
imagemenu.className = "image-menu";
var imagemenuimg1 = document.createElement('img');
imagemenuimg1.src = "img/edit_img.png";
var imagemenuimg2 = document.createElement('img');
imagemenuimg2.src = "img/close.png";
var imagewrapimg = document.createElement('img');
imagewrapimg.className = "thumbnail";
imagewrapimg.src = "admin/album_photos/" + album_photos[i].Image_Path;
document.getElementById("tiare").appendChild(td);
td.appendChild(imagewrap);
imagewrap.appendChild(imagemenu);
imagemenu.appendChild(imagemenuimg1);
imagemenu.appendChild(imagemenuimg2);
imagewrap.appendChild(imagewrapimg);
}
}
xhr2.send(null);
我得到的是這個在控制檯:
Uncaught TypeError: Cannot read property 'length' of undefined
xhr2.onreadystatechange
[Object, Object]
[Object, Object]
這是我的HTML上的元素被添加:
<html>
<head>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<!-- <div class="big_image" id="drop_zone">
<img src="" id="big_img" />
</div -->
<div class="images_holder">
<div class="header">Album Name - Photo Album <span class="close"><img src="img/close.png" /></span>
</div>
<div class="body">
<table width="80%">
<tr id="tiare">
<td>
<div class="image-wrap">
<div class="image-menu">
<img src="img/edit_img.png" />
<img src="img/close.png" />
</div>
<img src="img/anger.jpg" class="thumbnail" />
</div>
</td>
</tr>
</table>
</div>
</div>
<div id="drop_zone">Drag/Drop images to upload.</div>
<div style="height: 30px; width: 80%; color: white; text-align: center; margin: 0 auto;">
<p id="progress_bar" style="width: 0%; background-color: red;"></p>
</div>
<script src="js/script.js"></script>
</body>
</html>
另一個問題發生這種情況的原因是它們是2個對象,其中有2個對象,因爲它應該只顯示1個對象,而另外有2個對象。
我可以解決這個問題嗎?
注意:我必須使用純Javascript而不允許使用jQuery:P。
拜託,顯示響應文本 –
@VasilVanchuk,我得到的是響應文本的東西。 :P –
起初 - 您沒有檢查readyState(如xhr2.readyState == 4)爲岸,所有響應都已加載。你知道嗎?其次 - 請在你的問題中添加響應主體 - 它有助於理解變量的結構和值 –