Показать сообщение отдельно
  #1 (permalink)  
Старый 08.08.2017, 21:13
Аспирант
Отправить личное сообщение для АнонимныйПарень Посмотреть профиль Найти все сообщения от АнонимныйПарень
 
Регистрация: 17.03.2017
Сообщений: 67

Скорректируйте мой js код
Есть js код. Он динамически получает от сервера данные про товар (его название, id, цвет, размер и цену) и выводит эти данные в браузер. Также при нажатие на цену товара, этот товар добавляется в localStorage и потом, на странице с корзиной от-туда берется вся инфа.

Хотелось бы, что-бы в объекте cart (создаю в коде) была такая структура:

var cart = {
    id_objecta : {
        "id" : id,
        "name" : name,
        "cost" : cost
    }
};


Вот код:

var cart = {};

function init () {
	$.post(
		"../templates/core.php",
		{
			"action" : "init"
		},
		showGoods
	);
};

function showGoods (data) {
	data = JSON.parse(data);

/*	console.log(data);*/

	var out = '';

	for (var key in data) {
		out += '<div class="single_goods" style="padding-right: 0px; padding-left: 0px;">';
		out += '<b> ЗАМОК: ' + data[key].name + '</b>';
		out += `<img src="${data[key].image}">`; 
		out += '<p> Размер: ' + data[key].size + '</p>';
		out += '<p> Цвет: ' + data[key].color + '</p>';
		out += '<div class="btn-group" style="width: 100%;">';
		out += '<button type="button" class="btn btn-warning cost add" style="width: 100%; font-size: 1.7rem;" data-art="'+data[key].id+'" data-name="'+data[key].name+'"> Купить за: ' + data[key].cost +  '$</button>';
		out += '</div>';
		out += '</div>';
	}
	$('#goods').html(out);
	$('.add').on("click", addToCart);
};

function addToCart () {
	var articul = $(this).attr('data-art');
	var name = $(this).attr('data-name');

	cart['name'] = name;

	if (cart[articul] != undefined) {
		cart[articul]++;
	}
	else {
		cart[articul] = 1;
	}

	localStorage.setItem('cart', JSON.stringify(cart));

	showCart();
};

function checkCart () {
	if (localStorage.getItem('cart') != null) {
		cart = JSON.parse(localStorage.getItem('cart'));
	}
};

function showCart () {

	var out = '';
	for (var w in cart) {
		out += '<span> ID товара: '+ w +'</span> <br>'+'<span> Кол-во товара: '+ cart[w] +'</span> <br> <br>';
	}
	$('#mini-cart').html(out);
};

$(document).ready(function () {
	init();
	checkCart();
	showCart();
});


Вопрос: как осуществить сохранение объекта в том виде в котором я хочу? Сейчас все сохраняется вот так:

var cart = {
    "id" : id,
    "name" : name
};


Пожалуйста, не игнорируйте меня, помогите! Если я что-то непонятно объяснил, напишите и я объясню лучше или скину ту или иную часть кода!
Ответить с цитированием