Задать вопрос
@Addvencher

Как использовать 1 json файл для нескольких страниц?

На сайте есть например 3 раздела разной тематики в которых находятся разные товары (соответственно должно быть 3 группы товаров), подключаю к каждой странице свой JSON файл, и 1 JSON файл для корзины товаров, в которой находятся все 3 группы записей(те же записи что и на 3 станицах, только все вместе). Как сделать проще? Желательно 1 json файл на все страницы и корзину. На примере ниже json только с 1 раздела.
{
	"1001": {
		"name": "Доска обрезная 50х150х6000 (ель)",
		"cost": 385,
		"img" : "board.jpg"
	},
	"1002": {
		"name": "Доска обрезная 40х150х6000 (ель)",
		"cost": 305,
		"img" : "board.jpg"
	},
	"1003": {
		"name": "Доска обрезная 30х150х6000 (ель)",
		"cost": 230,
		"img" : "board.jpg"
	},
	"1004": {
		"name": "Брус обрезной 100х100х6000 (ель)",
		"cost": 510,
		"img" : "brus.jpg"
	},
	"1005": {
		"name": "Брус обрезной 150х150х6000 (ель)",
		"cost": 1150,
		"img" : "brus.jpg"
	}
}


var cart = {};

function init() {
    $.getJSON("goods.json", goodsOut);
}

function goodsOut(data) {
    console.log(data);
    var out='';
    for (var key in data) {
        out +='<div class="cart">';
        out +='<img src="../../img/'+data[key].img+'">';        
        out +='<p class="name">'+data[key].name+'</p>';
        out +='<div class="cost">'+data[key].cost+' руб./шт.</div>';
        out +='<button class="add-to-cart" data-id="'+key+'">В корзину</button>';
        out +='</div>';
    }
    $('.goods-out').html(out);
    $('.add-to-cart').on('click', addToCart);
}
function addToCart() {
    var id = $(this).attr('data-id');
    if (cart[id]==undefined) {
        cart[id] = 1;
    }
    else {
        cart[id]++;
    }
    saveCart();
}

function saveCart() {
    localStorage.setItem('cart', JSON.stringify(cart));
}

function loadCart() {
    if (localStorage.getItem('cart')) {
        cart = JSON.parse(localStorage.getItem('cart'));
    }
}

$(document).ready(function () {
    init();
    loadCart();
});
  • Вопрос задан
  • 127 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 1
Max-GopheR
@Max-GopheR
Web разработчик
Код писать лень, но логику вижу такой:
1) Каждый "контроллер" должен работать с одним файлом
2) Для разделения категорий можно использовать например такую структуру файла:
{
    "cart":{...},
    "razdel1": {...},
    "razdel2": {...},
    "razdel3": {...}
}

Ну и соответственно для автоматизации определения задела - название можно определять локальной переменной.
А вообще сложно менять логику проекта, который не знаешь!))) Поэтому думаю что общую суть донес, ну а дальше дело за вами!
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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