Вывод cодержимого одного json файла на две html страницы?
Как вывести из одного json файла cодержимое одного обьекта на одну html cтраницу а содержимое другого обьекта на другую html страницу?
Есть один мужской товар (рубашка) и один женский товар (платье) в файле goods.json. Нужно чтобы при открытии страницы man.html отобразилась мужская рубашка а при открытии страницы woman.html отобразилось платье. Как реализовать это? (без использования jquery) Что добавить в мой код? eshop.js:
document.addEventListener('DOMContentLoaded', function (e) {
loadGoods();
});
function loadGoods() {
$.getJSON('goods.json', function (data) {
var out = '';
for (var key in data){
out+='<div class="single-goods">';
out+='<h3>'+data[key]['name']+'</h3>';
out+='<img src="'+data[key].image+'">';
out+='<p>Цена: '+data[key]['cost']+'</p>';
out+='<button class="add-to-cart" data-art="'+key+'">Купить</button>';
out+='</div>';
}
document.getElementById('goods').innerHTML = out;
document.querySelectorAll('button.add-to-cart').forEach(function(but) {
but.addEventListener("click",addToCart);
})
});
}
goods.json:
{
"Рубашка №1" : {
"name" : "Рубашка №1",
"cost" : 1000,
"country" : "argentina",
"image" : "images/1.jpg",
"brand": "M"
},
"Платье №1" : {
"name" : "Платье №1",
"cost" : 1000,
"country" : "brazil",
"image" : "images/a.jpg",
"brand": "L"
}
}
man.html:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
</head>
<body>
<a href="index.html">на главную cтраницу</a>
<div id="mini-cart"></div>
<div id="goods"></div>
<script src="js/jquery-3.1.1.min.js"></script>
<script src="js/eshop.js"></script>
</body>
</html>
woman.html: //такой же код как и в man.html |
nathan111777, ситуация конечно бестолковая... Такого быть не должно.
Но если как упражнение какое-то... Тогда, как вариант, можно прочитать название страницы и послать в функцию аргумент равный одному из - Рубашка №1 - Платье №1 Далее, без всякого цикла, просто использовать указанный ключ... |
Как реализовать это кодом? Я просто только начинаю изучать JS...Приведите пожалуйста хоть маленький пример кода как это реализовать...
А про ситуацию, просто мне нужно чтобы все товары хранились в одном json файле а не в разных json файлах... |
Цитата:
Зачем грузить всю информацию, когда нужна только часть? |
Цитата:
document.addEventListener('DOMContentLoaded', function (e) {
var o={
'man.html': 'Рубашка №1',
'woman.html': 'Платье №1'
};
var key=top.location.href;
key=key.match(/[^\/]+$/);
key=o[key];
loadGoods(key);
});
function loadGoods(Key) {
$.getJSON('goods.json', function (data) {
var out = '';
out+='<div class="single-goods">';
out+='<h3>'+data[Key]['name']+'</h3>';
out+='<img src="'+data[Key].image+'">';
out+='<p>Цена: '+data[Key]['cost']+'</p>';
out+='<button class="add-to-cart" data-art="'+Key+'">Купить</button>';
out+='</div>';
document.getElementById('goods').innerHTML = out;
document.querySelectorAll('button.add-to-cart').forEach(function(but) {
but.addEventListener("click",addToCart);
})
});
}
Но если данных будет много - это не выход из ситуации... :no: |
ну пока делаю сайт для портфолио, то думаю закинуть 8 мужских рубашек и 8 женских платьев.
Просто на моем сайте есть корзина товаров cart.html в которую добавляюю товары, пробовал создать отдельный файл json для женских товарова и копию eshop.js то начались проблемы с localstorage...когда-то давно посоветовали взять и все обьекты поместить в один json файл что б не было ошибок с localstorage |
nathan111777, желательно получать только нужные на странице данные...
А ты собираешься грузить как женское, так и мужское. У тебя серверной "части" нет совсем? |
я учусь на front-end developer, а потому серверной части нет, знаю что это делается на серверной части но все равно хочу доделать это потому что сайт уже на 90% готов, а это мини интернет магазин.
а что делает эта строка? key=key.match(/[^\/]+$/); почему так много символов в круглых скобках? для чего они? |
Цитата:
https://javascript.ru/string/match Цитата:
|
я вот подумал а если например добавлю в json 8 мужских товаров и 8 женских,а что если
1) пронумеровать объекты(назвать их числом) в файле json мужские от 1 до 8 а женские от 8 до 16. 2) в обьекте "o" свойству man.html присвоить значение от 1 до 8. а свойству woman.html присвоить значение от 8 до 16. Так можно или свойство может принимать только одно значение? Если можно то как это сделать? |
| Часовой пояс GMT +3, время: 01:36. |