Цикл перехода, основанный на существовании ресурса - PullRequest
0 голосов
/ 26 ноября 2018

Я ломаю голову, пытаясь понять это.У меня есть 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, я все еще учусь и мне предстоит долгий путь, поэтому я скучаю по некоторым основным понятиямкак работают циклы и функции и как работает вся логика, так что, пожалуйста, потерпите меня.

Спасибо!

1 Ответ

0 голосов
/ 26 ноября 2018

Я исправил это, используя мой ETL.Не удалось найти способ сделать это с помощью js.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...