Не могу вывести товар из БД в корзине

A
На сайте с 31.08.2012
Offline
42
640

Здравствуйте

Есть простенький интернет-магазин. Товары записаны в файле, tovar.json. Вывод товара на страницу вот (часть кода):



var cart = {};
function init() {
$.getJSON("tovar.json", goodsOut);
}
function goodsOut(data) {
var out='';
for (var key in data) {
out +='<div class="cart">';
out +='<p class="name">'+data[key].name+'</p>';
out += '<img src="images/'+data[key].img+'" alt="">';
out +='<div class="cost">'+data[key].cost+'</div>';
out +='<button class="add-to-cart">Добавить в корзину</button>';
out +='</div>';.........

Добавление в корзину и вывод вот (часть кода)



var cart = {};
function loadCart() {
//проверяю есть ли в localStorage запись cart
if (localStorage.getItem('cart')) {
// если есть - расшифровываю и записываю в переменную cart
cart = JSON.parse(localStorage.getItem('cart'));
showCart();
}
else {
$('.main-cart').html('Корзина пуста!');
}
}

function showCart() {
//вывожу корзину
if (!isEmpty(cart)) {
$('.main-cart').html('Корзина пуста!');
}
else {
$.getJSON('tovar.json', function (data) {
var goods = data;
var out = '';
for (var id in cart) {
out +='<div class="cart">';
out += `<button data-id="${id}" class="del-goods">Убрать из корзины</button><br><br>`;
out += `<img src="images\\${goods[id].img}"><br>`;
out += ` ${goods[id].name }<br>`;
out += ` ${cart[id] } шт <br><br>`;
out += `Сумма `;
out += cart[id]*goods[id].cost;
out += ` руб <br><br>`;
out += `<button data-id="${id}" class="plus-goods">+</button>`;
out += `<button data-id="${id}" class="minus-goods">-</button>`;
out += '<br>';
out +='</div>';.......

Начал переделывать под БД. В первом коде вывод из бд сделал, все нормально, все выводится



var cart = {};
function init() {
$.post(
"md/core.php",{
"action" : "LoadGoods"
},
goodsOut
);
}
function goodsOut(data) {
var out='';
for (var key in data) {..........

А в корзине товар не выводится, помогите разобраться. Мне кажется все дело в строке

$.getJSON('tovar.json', function (data)
, но как ее переделать...тут и застрял
не бросайте своих родных
S
На сайте с 30.09.2016
Offline
469
#1

А что Вы называете БД?

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
A
На сайте с 31.08.2012
Offline
42
#2

База данных

S
На сайте с 30.09.2016
Offline
469
#3

И что, Вы храните корзину в базе данных? Судя по вопросу в названии топика.

A
На сайте с 31.08.2012
Offline
42
#4

Данные из db не выводятся в "корзине"...наверное так надо было, сейчас уже не поправить(

nezabor
На сайте с 19.07.2010
Offline
152
#5
Aalc:
А в корзине товар не выводится, помогите разобраться. Мне кажется все дело в строке
Код:
$.getJSON('tovar.json', function (data)
, но как ее переделать...тут и застрял

скобки в конце не хватает? т.е. вообще ничего не хватает, где конец?

---------- Добавлено 30.01.2018 в 16:27 ----------

киньте файли полностью, а то только начало функций, где нет никакого вывода

Чудес не бывает...
A
На сайте с 31.08.2012
Offline
42
#6

Здесь выводится корзина


var cart = {};
function loadCart() {
//проверяю есть ли в localStorage запись cart
if (localStorage.getItem('cart')) {
// если есть - расшифровываю и записываю в переменную cart
cart = JSON.parse(localStorage.getItem('cart'));
showCart();
}
else {
$('.main-cart').html('<strong>Корзина пуста</strong>');
}
}

function showCart() {
//вывод корзины
if (!isEmpty(cart)) {
$('.main-cart').html('<strong>Корзина пуста</strong>');
}
else {
$.getJSON('goods/tovar.json', function (data) {
var goods = data;
var out = '';
for (var id in cart) {
out +='<div class="cart">';
out += `<button data-id="${id}" class="del-goods">Убрать из корзины</button><br><br>`;
out += `<img src="images\\${goods[id].img}" class="img2"><br>`;
out += ` ${goods[id].name }<br>`;
out += ` ${cart[id] } шт <br><br>`;
out += `Сумма `;
out += cart[id]*goods[id].cost;
out += ` руб <br><br>`;
out += `<button data-id="${id}" class="plus-goods">+</button>`;
out += `<button data-id="${id}" class="minus-goods">-</button>`;
out += '<br>';
out +='</div>';
}
$('.main-cart').html(out);
$('.del-goods').on('click', delGoods);
$('.plus-goods').on('click', plusGoods);
$('.minus-goods').on('click', minusGoods);
});
}
}

function delGoods() {
//удаляем товар из корзины
var id = $(this).attr('data-id');
delete cart[id];
saveCart();
showCart();
}
function plusGoods() {
//добавляет товар в корзине
var id = $(this).attr('data-id');
cart[id]++;
saveCart();
showCart();
}
function minusGoods() {
//уменьшаем товар в корзине
var id = $(this).attr('data-id');
if (cart[id]==1) {
delete cart[id];
}
else {
cart[id]--;
}
saveCart();
showCart();
}

function saveCart() {
//сохраняю корзину в localStorage
localStorage.setItem('cart', JSON.stringify(cart)); //корзину в строку
}

function isEmpty(object) {
//проверка корзины на пустоту
for (var key in object)
if (object.hasOwnProperty(key)) return true;
return false;
}

function sendEmail() {
var ename = $('#ename').val();
var email = $('#email').val();
var ephone = $('#ephone').val();
if (ename!='' && email!='' && ephone!='') {
if (isEmpty(cart)) {
$.post(
"core/mail.php",
{
"ename" : ename,
"email" : email,
"ephone" : ephone,
"cart" : cart
},
function(data){
if (data==1) {

document.location.replace ("cart.html");
alert('Заказ отправлен');

}
else {
alert('Повторите заказ');
}
}
);
}
else {
alert('Корзина пуста');
}
}
else {
alert('Заполните поля');
}

}


$(document).ready(function () {
loadCart();
$('.send-email').on('click', sendEmail);

// отправить письмо с заказом
});

здесь вывод товара на главную страницу (из БД)


var cart = {}; // корзина

function init() {
//считываем файл goods.json
$.getJSON("goods/tovar.json", goodsOut); //данные выводятся из файла
//$.post(
// "md/core.php",{
// "action" : "LoadGoods" // данные выводятся из БД
// },
// goodsOut
// );
}

function goodsOut(data) {
// вывод на страницу
//data=JSON.parse(data);
console.log(data);
var out='';
for (var key in data) {
// out +='<div class="cart">';
// out +='<p class="name">'+data[key].name+'</p>';
// out += '<img src="images/'+data[key].img+'" alt="">';
// out +='<div class="cost">'+data[key].cost+'</div>';
// out +='<button class="add-to-cart">Купить</button>';
// out +='</div>';
// ---------
out +='<div class="cart">';
out +=`<p class="name">${data[key].name}</p>`;
out +=`<img src="images/${data[key].img}" alt="" class="img">`;
out +=`<div class="cost">${data[key].cost} руб/лист</div>`;
out +=`<button class="add-to-cart" data-id="${key}">Купить</button><br><br>`;
out +=`<a href="cart.html">Перейти в корзину</a>`;
out +='</div>';
}
$('.goods-out').html(out);
$('.add-to-cart').on('click', addToCart);
}

function addToCart() {
//добавляем товар в корзину
var id = $(this).attr('data-id');
// console.log(id);
if (cart[id]==undefined) {
cart[id] = 1; //если в корзине нет товара - делаем равным 1
}
else {
cart[id]++; //если такой товар есть - увеличиваю на единицу
}
showMiniCart();
saveCart();
}

function saveCart() {
//сохраняю корзину в localStorage
localStorage.setItem('cart', JSON.stringify(cart)); //корзину в строку
}

function showMiniCart() {
//показываю мини корзину
var out="";
for (var key in cart) {
out += key +' количество '+ cart[key]+'<br>';
}
$('.mini-cart').html(out);
}

function loadCart() {
//проверяю есть ли в localStorage запись cart
if (localStorage.getItem('cart')) {
// если есть - расширфровываю и записываю в переменную cart
cart = JSON.parse(localStorage.getItem('cart'));
showMiniCart();
}
}

$(document).ready(function () {
init();
loadCart();
});

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий