[JS] Pobieranie danych z pliku XML

0

Cześć

Jestem początkujący w programowaniu w JavaScripcie, więc proszę mnie aż tak nie bić. Chciałbym na podstawie wybranych danych w liście rozwijalnej w HTMLu pobrać konkretne dane (a właściwie przepisy) i wyświetlić je. Kod stworzyłem, jednak nic się nie wyświetla i nie wiem gdzie dałem ciała. Prosiłbym o poradę. Oto kod JS:

 function loadXML() {
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            work(this);
        }
    };
    xhttp.open("GET", "xml/potrawy.xml", true);
    xhttp.send();
}

function work(xml){
    var cuisines = document.getElementsByName("kuchnie")[0].value;
    var dinner = document.getElementsByName("potrawy")[0].value;
    var xmlDoc = xml.responseXML;
    var x = xmlDoc.getElementsByTagName("danie");
    for (var i = 0; i < x.length; i++) {
        if ((x[i].getElementsByTagName("rodzaj_kuchni")[0].innerHTML==cuisines || cuisines=="wkuchnie") && (x[i].getElementsByTagName("typ_dania")[0].innerHTML==dinner || dinner=="wjedzenie")) {
            write_data(x[i].getElementsByTagName("nazwa").innerHTML,x[i].getElementsByTagName("opis").innerHTML);
        }
    }
}

function write_data(z,t) {
    document.getElementById("content").innerHTML +=
        '<div class="col-sm-12">'
        + '<div class="col-sm-12 text-center">'
        +   '<h4>' + z+ '</h4>'
        + '</div>'
        + '<div class="col-sm-9 text-center">'
        + '<p>' + t+ '</p>'
        + '</div>'
        + '</div>';
0
  1. Jeśli możesz to użyj JSONa zamiast XMLa.
  2. W każdej przeglądarce masz narzędzia developerskie, a wśród nich debugger. Użyj go.
0

Dziękuje. Niestety muszę użyć XMLa.
Sprawdziłem w debuggingu i wystrzela mi taki błąd:
" Cannot read property 'getElementsByTagName' of null
at work
at XMLHttpRequest.xhttp.onreadystatechange"

Z tego co wyszukałem po sieci głównym rozwiązaniem tego problemu jest ten if (this.readyState == 4 && this.status == 200), który zamieściłem. Więc nie wiem za bardzo o co chodzi. Czy to jest problem z serwerem (używam XAMPPa)?

1 użytkowników online, w tym zalogowanych: 0, gości: 1