ввести переменную и сделать ее вывод.
Вложений: 1
Доброго времени суток! Не так давно передо мной встала задача реализовать простенькую корзину для сайта. Так как знаний в jQ не много - решил взять готовое решение и окончательно запутался. Путаница заключается в том, что есть список заказов в корзине:
тут не хватает двух полей, а то есть переменных: НДС % и сумма НДС руб. + ко всему в поле всего должно быть еще + сумма ндс. Не могу разобраться, как ввести переменную и сделать вывод, пожалуйста, помогите! Один момент: Товары на сайт выводятся переменной: <script> var priceList = { "001" : {"id" : "001", "subid" : {}, "name" : "Имя товара", "subname" : {}, "price" : "100"}, "002" : {"id" : "002", "subid" : {}, "name" : "Имя товара", "subname" : {}, "price" : "200"} }; </script> хотелось бы сделать вывод переменной ндс таким образом, чтобы для каждого товара переменная, к примеру nds устанавливалась в данной строке, так же, как и прайс. Сам скрипт в прикрепленном файле. Помогите, пожалуйста!:help: :help: |
Цитата:
|
Цитата:
Просто кнопка покупки, которая совершенно не привязана к товару. Все в мануал режиме набивается. |
Ну если так "наплевательски" относиться к содержанию, то дело хозяйское. Но объект с параметрами товаров не сам же на странице появляется, его же сервер отдает, поэтому добавляйте нужное:
"001" : {"id" : "001", "subid" : {}, "name" : "Имя товара", "subname" : {}, "price" : "100", "nds" : 999} |
Цитата:
Добавить нужное в строку вывода - это хорошо, а как эту переменную вписать в сам скрипт + привязать на него расчет - мне не совсем понятно. Сам скрипт прикреплен. Схема такова: Берем 'nds',например, 18%, переводим его в сумму от цены и ее прибавляем к конечной, как завязать именно этот расчет в скрипте - я увы не знаю |
Если это статические файлы, а НДС для отображения цены с НДС, то что вам мешает сразу прописать уже рассчитанное в объект? Или проблема узнать сколько будет 18% от цены?
А получить точно также как и получаем все остальное. В скрипте прилагаемом вообще описана только работа с корзиной, данные которой хранятся в локальном хранилище, Каким образом они туда попадают вопрос к вам. То есть чтобы их поместить в описанный выше объект (это похоже и есть формат хранения корзины), сервер эти данные должен передать клиенту (НДС). А получать, смотрите функцию renderBasketTable - local.name, local.price и т.д., будет в хранилище nds, значит local.nds. localStorage - это сам объект локального хранилища. |
Цитата:
Прописал константу var local = { "basket_is_empty" : "Корзина пуста", "name" : "Название", "price" : "Цена", "all" : "Всего", "order" : "Оформить заказ", "basket" : "корзина", "num" : "кол-во", "send" : "Спасибо за покупку!\nМы свяжемся с Вами в ближайшее время", "goods" : "Товаров", "amount" : "на сумму" "nds" : "Ставка НДС" "ndsamount" : "Сумма ндс НДС" }; Это чисто lable присвоил. Далее: var goodieLine = {"id" : id_, "name" : name_, "nds": nds, "ndsamount": ndsamount, "price": price, "num" : kol, "url" : document.location.href, "photo" : ""}; Написал атрибут для добавления в строку товара. this.reCalc = function() { var num = 0; var sum = 0; var nds = 0; var ndsamount = 0; for(var idkey in this.DATA) { num += parseInt(this.DATA[idkey].num); sum += parseFloat(parseInt(this.DATA[idkey].num) * parseFloat(this.DATA[idkey].price)); } Объявил переменные, а вот что сделать с sum += не знаю this.widjetObj.html(local.goods + " " + num + " " + local.amount + " " + sum + " Руб."); localStorage.setItem(this.cardID, JSON.stringify(this.DATA)); И тут не ясно |
Ну а для чего вы считаете общую сумму?
|
Цитата:
|
Вы НДС считаете по общей сумме, тогда зачем вам нужно было помещать ее значение в каждую характеристику товара? Ну коли у вас статика, все расписано в переменных, ну пропишите и значение НДС в переменной
var local = { //... //... nds = .18 Цитата:
for(var idkey in this.DATA) { num += parseInt(this.DATA[idkey].num); sum += parseFloat(parseInt(this.DATA[idkey].num) * parseFloat(this.DATA[idkey].price)); } Найти 18% от суммы общей проблема? sum += sum * nds. Куда выводить проблема? Ну так решайте сами. |
Дело все в том, что задать значение в строке товаров нужно потому, что ндс не всегда 18 процентов. И получается чтобы для каждого товара выводило инфу сколько ндс в процентах, следом сумму ндс от цены и далее ндс от цены + итого цена за товар.
Проблема именно в том, чтобы ввести переменную и заставить ее выводиться из строки var priceList = { "001" : {"id" : "001", "subid" : {}, "name" : "IPhone 5", "subname" : {}, "nds" : "18", "price" : "100"}, "002" : {"id" : "002", "subid" : {}, "name" : "IPad MINI", "subname" : {}, "price" : "200"} }; |
А сразу указывать с НДС цену товара что нельзя?
Если надо, ну так у вас во-первых не строка, а объект, свойства которого вы получаете: this.DATA[idkey].num, this.DATA[idkey].price и т.д., ну какие проблемы получить НДС - this.DATA[idkey].nds. Во-вторых проценты НДС, это часть от 100, и 18% нужно записывать не как 18, а как .18 или 0.18. Коли прописываете этот объект руками, то записывать можно так (числа совсем не обязательно обрамлять кавычками, как и имена свойств объекта) var priceList = { "001" : {id : "001", subid : {}, name : "IPhone 5", subname : {}, nds : .18, price : 100}, "002" : {id : "002", subid : {}, name : "IPad MINI", subname : {}, nds : .14, price : 200} }; Но не зависимо от того с этого ли объекта берутся свойства или уже из локального хранилища после JSON.parse, parseInt и parseFloat не нужен в расчетах. Собственно и id : "001" в объекте тоже не нужен, он и так прописан как свойство объекта priceList. Вот только на изображении корзины надо полагать Всего, это за каждый товар, а значит эта цена должна быть с НДС, а итоговая сумма, это не sum += parseFloat(parseInt(this.DATA[idkey].num) * parseFloat(this.DATA[idkey].price)); а сумма всех "Всего" за каждый товар. То есть при выводе таблицы корзины считаем Всего для каждого товара: var tot = this.DATA[idkey].price * this.DATA[idkey].num + this.DATA[idkey].price * this.DATA[idkey].nds; sum += tot; |
laimas,
Вот это уже более похоже на то, что мне нужно. Дело в том, я не совсем понимаю что куда в данном случае вставить или что где объявить. Если не сложно - можно "на пальцах" Цитата:
|
Зачем парить мозги себе и покупателям НДС и ценой без нее, прекрасно зная, что по этой цене товар купить нельзя?
|
Meattale,
исправлено, цена набранного товара должно быть: var price = this.DATA[idkey].price + this.DATA[idkey].price * this.DATA[idkey].nds, total = price * this.DATA[idkey].num; |
Часовой пояс GMT +3, время: 12:14. |