me4t10
@me4t10
Творческий)

Как в js считать данные из файла txt указанного ссылкой в json?

Здравствуйте! Пытаюсь сделать небольшой интернет-магазин на js и jquery и json.

Json файл представляет из себя простой каталог файлов. Js файл читает его и выводит данные в html.
Проблема в том, что описания товаров очень большие - по нескольку абзацев, вставлять их просто в json неудобно.
Я решил в json для ключа description использовать ссылку на текстовый файл с описанием данного товара.
Но я не знаю как сделать в js обработку этого файла .txt и вывести данные на страничку. Помогите, пожалуйста!

Вот код:

goods.json

{
  "11292" : {
    "name" : "Яблоки",
    "cost" : 12,
    "description" : "texts/11292.txt",
    "image" : "images/apple.png"
  },
  "11294" : {
    "name" : "Лимоны",
    "cost" : 16,
    "description" : "texts/11294.txt",
    "image" : "images/lemon.png"
  },
  "11295" : {
    "name" : "Клубника",
    "cost" : 22,
    "description" : "texts/11295.txt",
    "image" : "images/strawberry.png"
  }
}


eshop.js

function loadGoods() {
    //загружаю товары на страницу
    $.getJSON('goods.json', function (data) {
        //console.log(data);
        var out = '';
        for (var key in data){
            out+='<div class="single-goods">';
            out+='<h3>'+data[key]['name']+'</h3>';
            out+='<p>Цена: '+data[key]['cost']+'</p>';
            out+='<p>Описание: '+data[key].description+'</p>'; //вот здесь нужно обработать файл txt, но как это сделать?
            out+='<img src="'+data[key].image+'">';
            out+='<button class="add-to-cart" data-art="'+key+'">Купить</button>';
            out+='</div>';
        }
        $('#goods').html(out);
    });
}
  • Вопрос задан
  • 1350 просмотров
Решения вопроса 1
Dimastik86
@Dimastik86
(isset($brain))?: die;
function readTextFile(file)
{
    var rawFile = new XMLHttpRequest();
    rawFile.open("GET", file, false);
    rawFile.onreadystatechange = function ()
    {
        if(rawFile.readyState === 4)
        {
            if(rawFile.status === 200 || rawFile.status == 0)
            {
                var allText = rawFile.responseText;
                alert(allText);
            }
        }
    }
    rawFile.send(null);
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы