Я ломаю голову, пытаясь понять это.У меня есть XML-файл сотрудников, а фотографии хранятся на другом сервере.Я создаю URL с помощью SQL-запроса, который создает XML.
Мне нужно отобразить всех сотрудников, у которых отсутствует фотография.
Функция, которая последовательно читает XML, выглядит следующим образом:
function updateBoard() {
var html;
xmlDoc = "";
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET", "xml/no_photo.xml", false);
xmlhttp.send();
xmlDoc = xmlhttp.responseXML;
var x = xmlDoc.getElementsByTagName("Row");
html = '<br><table class="transp" align="center"><tbody><tr><td valign="top"><div class="tbl_head_bright">Foto</div></td></td><td valign="top"><div class="tbl_head_bright"># Empleado</div></td><td><div class="tbl_head_bright">Nombre</div></td><td valign="top"><div class="tbl_head_bright">Departamento</div></td></tr>';
for (i = 0; i < x.length; i++) {
var img = new Image();
img.onerror = function() {
html += '<tr><td><span class="dchange_bright"> MISSING </span></td>';
html += '<td><span class="dchange_bright">' + empid + '</span></td>';
html += '<td class="left"><span class="dchange_bright">' + Nombre + '</span></td>';
html += '<td class="left"><span class="dchange_bright">' + department + '</span></td></tr>';
}
img.src = x[i].getElementsByTagName("url")[0].childNodes[0].nodeValue
var Nombre = x[i].getElementsByTagName("nombres")[0].childNodes[0].nodeValue + ' ' + x[i].getElementsByTagName("apellidos")[0].childNodes[0].nodeValue
var empid = x[i].getElementsByTagName("emp_id")[0].childNodes[0].nodeValue
var department = x[i].getElementsByTagName("departamento")[0].childNodes[0].nodeValue
};
html += '</tbody></table></div>'
$('#mainboard').html(html);
}
Это не работает.Это ничего не отобразит.Консоль отображает 404 ошибки, которые являются отсутствующими фотографиями, но ничего не показывает.
Я пытался использовать continue для события onload, но выдает ошибку, что continue разрешена только в цикле.Что я, но очевидно, что нахождение внутри функции нарушает логику.
Я не очень разбираюсь в javascript, я все еще учусь и мне предстоит долгий путь, поэтому я скучаю по некоторым основным понятиямкак работают циклы и функции и как работает вся логика, так что, пожалуйста, потерпите меня.
Спасибо!