Данные JSON недоступны во внешней функции, предназначенной для сравнения входных данных с json, а затем вывода - PullRequest
0 голосов
/ 18 февраля 2019

Проблема в том, что данные json недоступны в функции calcInterest, которую невозможно выполнить, и нет выходных данных.

Это сообщение об ошибке:

Uncaught ReferenceError: jsonResponse не определен на странице calcInterest (script.js: 36) в XMLHttpRequest.request.onload (script.js: 29)

Цель этого приложения - выводить годовой отчетпроценты на основе введенного номера.Все это определяется данными json, которые должны сравнивать основную стоимость со значениями json, а затем определять процент каждый год.

Вот ссылка на проект.https://github.com/BKwingwa/Interestcalculator/tree/master/InterestCalculator3

Во всех исправлениях схожих проблем используется jQuery, и в этом проекте мне разрешено использовать только чистый JavaScript, так как намерение учителя - учиться без какой-либо основы.

I 'мы пробовали и XMLHttpRequest на основе w3schools, а затем пытались загрузить функцию внутри ответа, а также пытались использовать XMLHttpRequest на основе этого проекта

Хотя я до сих пор не могу показатьсяполучить данные json внутри функции, пытаясь набрать calculateInterest(jsonResponse) в обоих этих различных xmlhttprequests.

window.onload = function()
{
    var btn = document.getElementById('btnJson').addEventListener('click', loadJson);

    var principal = document.getElementById('principal').value;
}

// ----------------------------- Описание того, что намерение этого приложения -----------------------------

// То, что должно быть выведено в HTML, представляет интерес в зависимости от числа во входных данных.// JSON решает, каким должен быть годовой интерес.Годовой процент предназначен для вывода.

function loadJson()
{


    var requestURL = 'interest.json';

    var request = new XMLHttpRequest();

    request.open('GET', requestURL);

    request.responseType = 'json';
    request.send();


    request.onload = function()
    {
        var jsonResponse = request.response;
        calculateInterest(jsonResponse);
    }



    function calculateInterest()
    {
        if (principal >= jsonResponse[0].from && principal <= jsonResponse[0].up_to)
        {
         //  return document.getElementById('paragraph').innerHTML = jsonResponse[0].interest;
         console.log(jsonResponse[0].interest);
        }

        else if (principal >= jsonResponse[1].from && principal <= jsonResponse[1].up_to)
        {
         //  return document.getElementById('paragraph').innerHTML = jsonResponse[1].interest;
         console.log(jsonResponse[1].interest);
        }


    }

}

//var btn = document.getElementById('btnJSON').addEventListener('click', loadJson);

Ожидаемые результаты: в HTML должен быть указан процент, зависящий от числа во входных данных.JSON решает, каким должен быть годовой интерес.Годовой процент предназначен для вывода.

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

Заранее спасибо!

1 Ответ

0 голосов
/ 19 февраля 2019

Эта проблема теперь исправлена.Это ссылка на то, как выглядит скрипт, когда он готов.Я разместил комментарии, чтобы их было легче понять людям, интересующимся обучением.Я также прокомментировал некоторые старые вещи, чтобы вы могли видеть некоторые вещи, которые были заменены.

Ссылка на обновленный файл на Github: https://github.com/BKwingwa/Interestcalculator/blob/master/updatedscript

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