Как сделать такой калькулятор при условии что товаров может быть 80-100
Начал делать кулькулятор, токо не понимаю как распарсить большое кол-во товаров если их может быть 80-100 .
вот начал делать http://качкиесть.рф/ |
dimas15,
где-то надо хранить цену для умножения на количество -- и массив всех значений всех инпутов для тотал |
Полнейший п-ц. Еще можно div на span умножить.
|
Цитата:
|
dimas15,
закоментирован в коде вариант любезно предложенный Цитата:
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>spinner demo</title> <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css"> <style type="text/css"> .spinner{ width: 50px } span{ color: #FF0000; } </style> <script src="http://code.jquery.com/jquery-1.10.2.js"></script> <script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script> </head> <body> <table> <tr> <td>Формула 1 за 1шт <span>828</span> руб</td> <td>Кол-во шт.: <input type="text" name="spinner" min="0" value="0" id="spinner" class="spinner" data-price="828"/></td> </tr> <tr> <td>Формула 2 за 1шт <span>750</span> руб</td> <td>Кол-во шт.: <input type="text" name="spinner" min="0" value="0" id="spinner2" class="spinner" data-price="750"/></td> </tr> <tr> <td>Формула 3 за 1шт <span>650</span> руб</td> <td>Кол-во шт.: <input type="text" name="spinner" min="0" value="0" id="spinner3" class="spinner" data-price="650"/></td> </tr> <tr> <td>...</td> <td>....</td> </tr> <tr><td>Общая стоимость: <span id="res_total" name="priceall"></span></td></tr> </table> <input id="spinner"> <script> var sum = [], total = function (a) { return a.reduce(function (a, b, c) { return a + b }, 0) }; $("[name='spinner']").each(function (indx, el) { //var price = +$('span', $(el).parents('tr')).html(); var price = +$(el).data('price'); sum[indx] = 0; $(el).spinner({ spin: function (event, ui) { sum[indx] = ui.value * price; $("#res_total").html(total(sum)) }, change: function (event, ui) { sum[indx] = this.value * price; $("#res_total").html(total(sum)) }, stop: function (event, ui) { sum[indx] = this.value * price; $("#res_total").html(total(sum)) } }); }); $("#res_total").html(total(sum)) </script> </body> </html> |
Цитата:
|
Цитата:
Вы начинаете с самоочевидного. Типа вот у меня есть в хтмле число и вот число, в смысле изображение чисел, поскольку это голимый текст в том числе и var d = 8 не число, а текст. Но продолжите вы сплошным геморроем если, конечно, оно будет иметь продолжение. Легкость начала даст толчок, и попрет ваш кальк расти вширь. А между тем числа откуда-то берутся и надо их беречь как числа не пихая бездумно в теги. Сохраните данные как входящие данные в массиве и работайте с ним как угодно. Вы же откуда-то данные получаете? |
Если это поле ввода у него чистый value. Спиннер-шевроны значения не имеют. Но это валуе не надо умножать на innerHTML и даже textContent элемента. Валуе с id идет в кальк в котором уже заготовлены множители взятые из бд какой-нить хотя бы.
Ну а вообще вообще так не делают. Нет особого смысла вкачивать в браузер все ценники, скидки и акции. Из браузера на сервер идут потихоньку id, сервер получает, в рабочем порядке запрашивает, там все считает и выдает какой-нить json. Который вы немедленно рендерите. На входе id=>amount, то есть уникальный идентификатор продукта и количество. Эта парочка идет инсертом с автоубдейтом (on duplicate key update если вы правильно спроектировали бд) и сразу же запрос на подсчет, типа такого select sum(price *amount) sum, count(prod_id) count from orders as o where...// тут условия по юзеру и прочим параметрам согласно DDL. В результате браузер получает массив sum=>x, amount=>y Вот и весь куркулятор. ЗЫ Да, и это значит что юзер может месяц на погоны давить и наказаывать стопицот наименований, а вы и не заметите. Потому что не будет 80-100 товаров, будет каждый раз 1 штука. Ввел - уехало - посчиталось, ввел- ну и так далее эротично. А ковырять хтмл - не эротично. |
kostyanet,
да достаточно одного массива с ценами чтобы создать всё что наваял выше :write: |
Проблема выгрузить с браузера этот массив. Куда вы его положите, эти 80 тире 100 идех?
Ну, я понимаю, 80 тире запросов с предварительной проверкой на вшивость и готово. Ну или как уже обсуждалось where in( и тут 80 тире 100 id) А, ну если в бд не сохраняются заказы, то конечно. Куки навернул и нет заказов. :) |
Часовой пояс GMT +3, время: 05:41. |