Кнопки, позволяющие отображать определенные данные

Мне нужна помощь, пытаясь отобразить конкретные данные, и на этот раз мне нужно отсортировать таблицу, щелкнув по полам. вот мой HTML

<center>
    <h1>Russestyret 2018</h1>
<br>
 <header>
        <nav>
            <a href = "Index.html">Hjem</a>
            <a href = "Registreringer.html">Registrering</a>
            <a href = "Index.html">Arragementer</a>
        </nav>
 </header>
 <hr>



<img src = "bilder/russestyret2.png" width = "400px">


<h4>Arrangementer</h4>
<form id = "regarrangement">
    <label>Arrangør: <input id = "inparrangør" type = "text" required></label>
    <label>Adresse: <input id = "inpregadress"type = "text"required></label>
    <label>Postadresse:<input id = "inppostadresse" type = "text"required></label>
    <label>Poststed: <input id = "inppoststed" type = "tex"required></label>
    <label>Pris: <input id=inppris type = "text"required></label>
    <button type = "submit">Send inn</button>
</form>



<h4>Registrer en russ ved å fylle ut skjema under. Alle felter må fylles ut.</h4>
<form id = "registrering">
    <label>Navn: <input id = "inpnavn" placeholder = "Raahim Khan" type = "text" required></label>
    <label>Adresse: <input id = "inpadresse" type = "text" placeholder = "Adresse 12" required></label>
    <label>Mobilnummer: <input id = "inpmobilnummer" placeholder = "12345678" required></label>
    <label>Kjønn: 
      <select id = "inpkjønn" required>
        <option value = "" selected disabled hidden>Velg kjønn</option>
        <option>Mann</option>
        <option>Kvinne</option>
        <option>intetkjønn</option>
      </select>
      <label>Arrangement: <select id = "inparrang"></select></label>
    </label>
    <button type = "submit">Send inn</button>
</form>
 <br>
 <br>

кнопки, позволяющие мне видеть либо всех зарегистрированных русских, либо только мужчин, женщин или среднего возраста, visAlleruss означает show allruss, visIntetKjønn означает show neuter и так далее с мужчинами и женщинами:

<button class = "vis" onclick = "visAlleruss()">Vis alle</button>
<button class = "vis" onclick = "visMenn()">Vis Menn</button>
<button class = "vis" onclick = "visKvinner()">Vis Kvinner</button>
<button class = "vis" onclick = "visIntetkjønn()">Vis intetkjønn</button>



<table border = "2px" width = "500px;">
    <tr><th>Navn</th><th>Adresse</th><th>Mobilnummer</th><th>Kjønn</th><th>Arrangør</th><th>Adresse</th><th>Postadresse</th><th>Poststed</th><th>Pris</th><th>Slett:</th></tr>
    <tbody id = "txttabell"></tbody>
</table>
 <br>
 <br>
 <br>
 <br>

функция ниже - зарегистрировать russ / аранжировку и перенести их во внутренний HTML

//Register "arrangement":
function registrerearrangement(event){
    event.preventDefault();

    // Henter ut verdiene til input-feltene
    var arrangør = inpArrangør.value;
    var adresse = inpAdresse.value;
    var postadresse = inpPostadresse.value;
    var poststed = inpPoststed.value;
    var pris = inpPris.value;
    var russ = inpRuss.value;


    inpArrangør.value = "";
    inpAdresse.value = "";
    inpPostadresse.value = "";
    inpPoststed.value = "";
    inpPris.value = "";
    inpRuss.value = "";


    arrangement.push({
        "arrangør" : arrangør,
        "adresse" : adresse,
        "postadresse" : postadresse,
        "poststed" : poststed,
        "pris" : pris,
        "russ" : russ
    });    
}

//bring data from firebase into txtTabell.innerHTML
function hentArrangement(snapshot){
    var pk = snapshot.key;
    var nyTime = snapshot.val();
    var russRef = database.ref("russ/" + nyTime.russ);
    russRef.on("value", function(snapshotruss) {
        var pkk = snapshotruss.key;
        var russObj = snapshotruss.val();
        txtTabell.innerHTML += `
        <tr id = "${pk}">
        <td><label class = "russlabel" onclick = "edit('${pk}')">${nyTime.arrangør}</label><input type = "text" class = "editItem" style = "display:none"></td>
        <td>${nyTime.adresse}</td>
        <td>${nyTime.postadresse}</td>
        <td>${nyTime.poststed}</td>
        <td>${nyTime.pris}</td>
        <td>${russObj.navn}</td>
        <td>${russObj.russadresse}</td>
        <td>${russObj.mobilnr}</td>
        <td>${russObj.kjonn}</td>
        <td><label class = "delete" onclick = "slett('${pk}','${pkk}')"><button>Slett</button></label></td>
        </tr>`;
    });
} 


//bring russ:
function hentRuss(snapshot){
    var russNoekkel = snapshot.key;
    var russInfo = snapshot.val();

    inpRuss.innerHTML += `<option value = "${russNoekkel}">${russInfo.navn}</option>`;
};


//register "russ":
function registrerruss(event) {
    event.preventDefault();
    var navn = inpNavn.value;
    var russadresse = inpRussadresse.value;
    var mobilnr = inpMobil.value;
    var kjonn = inpKjønn.value;


    inpNavn.value = "";
    inpRussadresse.value = "";
    inpMobil.value = "";
    inpKjønn.value = "";


    russ.push({
        "navn" : navn,
        "russadresse" : russadresse,
        "mobilnr" : mobilnr,
        "kjonn" : kjonn
    });

}

skjema.onsubmit = registrerearrangement;
skjema2.onsubmit = registrerruss;

Функция ниже - это функции для кнопки, причина, по которой я использую .on ("child_added", hentRuss), заключается в том, что объекты russ являются объектами, включая пол, btw kjonn означает пол.

    function visAlleruss(){
      txtTabell.innerHTML = "";
      russ
      .on("child_added", hentRuss);    
}

    function visMenn(){
      txtTabell.innerHTML = "";
      russ
      .orderByChild("kjonn")
      .equalTo("Mann")
      .on("child_added", hentRuss);    
}


    function visKvinner(){
      txtTabell.innerHTML = "";
      russ
      .orderByChild("kjonn")
      .equalTo("Kvinne")
      .on("child_added", hentRuss);    
}

    function visIntetkjønn(){
      txtTabell.innerHTML = "";
      russ
      .orderByChild("kjonn")
      .equalTo("intetkjønn")
      .on("child_added", hentRuss);    
}

Я думаю, что устал читать и понимать весь твой код. Можете ли вы сказать мне точную проблему, например, некоторые ошибки js?

Wicky 15.05.2018 08:06

я понимаю, но всякий раз, когда я нажимаю кнопку, чтобы показать мне russ из их пола, я получаю сообщение об ошибке: «Typeerror: невозможно прочитать свойство 'navn', равное null», но когда я ввожу данные «navn», которые являются именем, это работает хорошо, пока я не попытаюсь показать им только их пол

Raahim Khan 15.05.2018 12:56

Будет легче найти вашу проблему, если поместить свой код в jsfiddle (jsfiddle.net) (лучше просто поместить проблемную часть)

Wicky 16.05.2018 11:36
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
29
0

Другие вопросы по теме