Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 09.01.2019, 04:25
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Hovik
оно выбирает для всех значение первого data, а они могут быть разними
Речь о цене в разных валютах, что ниже в коде? Цена должна быть одна и пересчитываться по курсу валюты. Если же цена за единицу товара уже просчитана сервером и отдается клиенту, то

<input type="text" data-price="[5000,6000,7000]">

цен за единицу товара, .data("price") вернет их массив, а опции списка выбора валюты значениями должны указывать на индекс в этом массиве.
Ответить с цитированием
  #22 (permalink)  
Старый 09.01.2019, 08:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от Hovik
но скрипт работает не правильно
let data =($('#calc .calc1_input input').not("[disabled]").data("price"));
let  data = $(this).data("price");
Ответить с цитированием
  #23 (permalink)  
Старый 09.01.2019, 12:39
Кандидат Javascript-наук
Отправить личное сообщение для Hovik Посмотреть профиль Найти все сообщения от Hovik
 
Регистрация: 15.10.2018
Сообщений: 116

Логика хорошая но теперь вопрос другой, оставить if + each или foreach использовать и вообще не понимаю как это сделать если можно то дайте ссылку на пример.

Последний раз редактировалось Hovik, 09.01.2019 в 15:40.
Ответить с цитированием
  #24 (permalink)  
Старый 09.01.2019, 15:53
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Hovik
но теперь вопрос другой
Кому и о чем?
Ответить с цитированием
  #25 (permalink)  
Старый 09.01.2019, 18:35
Кандидат Javascript-наук
Отправить личное сообщение для Hovik Посмотреть профиль Найти все сообщения от Hovik
 
Регистрация: 15.10.2018
Сообщений: 116

Вапрос к вам laimas,, ответ рони, понял, он просто написал код хата я ещё не праверил но там нужно тупа менять строк кода.
А вапрос такой. Логика вашего структуры понятно мне, по поводу работы с валютами, но каким образом сделать это, я понимаю может это для вас лехкая задача, но для меня очень трудный, голова прямо разваливается, пращу если вазможна то напишите код целиком.
Ответить с цитированием
  #26 (permalink)  
Старый 09.01.2019, 18:37
Кандидат Javascript-наук
Отправить личное сообщение для Hovik Посмотреть профиль Найти все сообщения от Hovik
 
Регистрация: 15.10.2018
Сообщений: 116

https://javascript.ru/forum/jquery/7...massiva-2.html
Ответить с цитированием
  #27 (permalink)  
Старый 09.01.2019, 18:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Hovik,
<input type="text" data-price="[5000,6000,7000]">
 <select id='valute'> <option value="0">AMD</option>

$(function() {
$('.calc1_btn').click(function(){
let inputs = 0, index = $('#valute').val();
$ ('#calc .calc1_input input').not("[disabled]").each (function (index) {
     let input = +$(this).val();
     let  data = $(this).data('price');
     inputs += input * data[index];
     });
$('.calc_result p').html(inputs);

});
$('#valute').change(function() {
    $('.calc1_btn').trigger('click')
})
});
Ответить с цитированием
  #28 (permalink)  
Старый 10.01.2019, 00:39
Кандидат Javascript-наук
Отправить личное сообщение для Hovik Посмотреть профиль Найти все сообщения от Hovik
 
Регистрация: 15.10.2018
Сообщений: 116

Ссылка на сайт не получается, смотрите сами.
http://heraxosi-aqsesuar.ru/calculation.html#valute
inputs == nan

Последний раз редактировалось Hovik, 10.01.2019 в 01:02.
Ответить с цитированием
  #29 (permalink)  
Старый 10.01.2019, 13:25
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Hovik
но каким образом сделать это, я понимаю может это для вас лехкая задача
В общем она ни для кого не будет трудной, для вас в том числе. А вот как сделать, это уже зависит от того, как представлены исходные данные, именно под это представление и требуется писать код клиентский, а не подгонять под ответ.

Способов хранения данных касающихся цен с учетом валют может быть несколько. Допустим можно хранить в базе цену товара сразу во всех валютах в раздельных полях. Минус такого хранения в том, что курсы валют непостоянны, а значит придется раз в сутки обновлять цены в базе.

Другой способ, это цена товара в базе представлена в одной базовой валюте, которая является валютой по умолчанию. Все дальнейшие операции с этой ценой с учетом валют производятся на лету. А планировщик только получает и сохраняет в базе курсы валют с которыми работает сайт. Предположим что у вас так и хранятся товары/услуги или чего-то там. Теперь можно думать какие задачи будут возложены на клиента, что соответственно и определит html структуру представления товаров/услуг на странице, и код ее обслуживающий.

Здесь два возможных варианта:

1) Клиентский код обеспечивает только выборку и сохранение в куках выбранной валюты либо передает выбранную валюты как параметр запроса в URL. Расчеты какие либо он производит согласно ценам по выбранной валюте, как это ранее и говорилось, в атрибутах data-..., в которые их помещает сервер, при выдаче страницы клиенту, рассчитывая цены в валютах отличных от базовой согласно курса. Кроме этого сервер помещает во все элементы на странице, которые отображают цену товара/услуги, рассчитанные цены в атрибут data-... То есть при смене валюты в списке, все цены на странице также должны быть выбраны из этих атрибутов и отображены у товара/услуги js-скриптом.

2) Для клиента сервер ничего не считает при запросе страниц, он отдает страницу всегда с ценами в базовой валюте, а в опции списка выбора валют помещает в data-... атрибуты отношения курсов валют. Для базовой валюты оно равно 1, для остальных соответственно курсу, а также помещает в data-... атрибуты и символы валют. Отдавая страницу клиенту, сервер также проверяет установку кук и если нет установленной валюты, устанавливает в куках базовую валюту. При получении страницы js-код проверяет какая валюта хранится в куках, отмечает в списке опцию соответствующую этой валюте, получает все цены на странице, производит их конвертацию к установленной валюте и отображает их на странице. При расчете в калькуляторе конвертирует суммы выбранных товаров/услуг и итоговую сумму. При смене валюты в списке производятся такие же операции плюс сохранение выбранной валюты в куках.

Почему куки? Если на сайте нет и не предусматривается таких операций как например выбор по фильтру по цене, то в общем-то не обязательно куки, можно хранить выбранную валюту и в локальном хранилище. Иначе сервер должен знать в какой валюте делается запрос фильтра, чтобы привести цены в запросе к базовой валюте для подстановки их в SQL запрос. А удобнее всего для этого куки - сервер имея доступ к ним определит текущую валюту.

В принципе это все, в общем плане.

Последний раз редактировалось laimas, 10.01.2019 в 13:44.
Ответить с цитированием
  #30 (permalink)  
Старый 14.01.2019, 11:00
Кандидат Javascript-наук
Отправить личное сообщение для Hovik Посмотреть профиль Найти все сообщения от Hovik
 
Регистрация: 15.10.2018
Сообщений: 116

Спасибо вам обоим, вы оба профессиональной праграмисти и я рад что вы памагаите новичкам. К сожалению я ещё не хорошо знаю php но учусь, так что есть надежда что до окончания года буду называться праграмистом, ну а пока решил сделать эту задачу без выбор валюты а потом увидим. Большое спасибо вам обоим.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обход многомерного массива с задержкой после каждого цикла Walk Общие вопросы Javascript 2 14.08.2017 16:17
Помогите к js коду, написать html код Modrih Элементы интерфейса 8 16.06.2015 18:08
Ввод диапазона значений массива с клавиатуры Воскобоенко Общие вопросы Javascript 11 06.06.2015 22:34
Суммировать все элементы массива в цикле. Blondinka Элементы интерфейса 6 27.05.2015 13:24
Сортировка массива по возрастанию другого массива. vas88811 Events/DOM/Window 4 12.01.2014 10:31