Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 21.08.2017, 08:47
Аватар для Белый шум
Профессор
Отправить личное сообщение для Белый шум Посмотреть профиль Найти все сообщения от Белый шум
 
Регистрация: 19.01.2012
Сообщений: 498

laimas,
а зачем дублировать код? Пусть всё в js считается. Заодно на сервере при получении данных с формы будет видно когда скрипт не отработал (это лучше чем получить неверные данные). - О какой нагрузке на клиент вы говорите в данном случае?...

pava467,
в какую форму? По какому счётчику?
Ответить с цитированием
  #12 (permalink)  
Старый 21.08.2017, 08:58
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Белый шум
а зачем дублировать код?
Что за хрень, о каком дублировании речь? Или вы считаете что для того чтобы умножить два числа РНР также должен как и JS ковыряться в DOM?

Несете не понять что. А насчет отработал клиент, не отработал, так миль пардон, по умолчанию почему-то определено.
Ответить с цитированием
  #13 (permalink)  
Старый 21.08.2017, 08:59
Интересующийся
Отправить личное сообщение для pava467 Посмотреть профиль Найти все сообщения от pava467
 
Регистрация: 21.08.2017
Сообщений: 14

Согласен с Вами, вот только я не могу реализовать это сам. Сюда пришел за помощью..
Ответить с цитированием
  #14 (permalink)  
Старый 21.08.2017, 09:08
Аватар для Белый шум
Профессор
Отправить личное сообщение для Белый шум Посмотреть профиль Найти все сообщения от Белый шум
 
Регистрация: 19.01.2012
Сообщений: 498

Сообщение от laimas
Что за хрень, о каком дублировании речь?
Я говорю о дублировании алгоритма, который потом придётся поддерживать в двух местах. При чём тут ковыряние в DOM? Лишняя миллисекунда при загрузке не стоит геморроя поддержки такого кода.

Впрочем, не буду спорить. Своё мнение я высказал, а решать всё-равно ТопикСтартеру.
Ответить с цитированием
  #15 (permalink)  
Старый 21.08.2017, 09:15
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Белый шум
Я говорю о дублировании алгоритма, который потом придётся поддерживать в двух местах.
Вы могли бы назвать "второе место", что это за место и что там будет дублироваться?
Ответить с цитированием
  #16 (permalink)  
Старый 21.08.2017, 09:24
Аватар для Белый шум
Профессор
Отправить личное сообщение для Белый шум Посмотреть профиль Найти все сообщения от Белый шум
 
Регистрация: 19.01.2012
Сообщений: 498

Одно место - js, второе - php.
Дублироваться будет эта строчка:
Код:
summ = summ*perhour*kurs;
- завтра понадобится добавить умножение на коэффициент, послезавтра - прибавить константу, а через год - высчитывать налог. И когда-нибудь впопыхах забудут что надо ещё в другом месте поправить.
Ответить с цитированием
  #17 (permalink)  
Старый 21.08.2017, 09:34
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Белый шум
Одно место - js, второе - php.
Охренеть, ей богу. summ = summ*perhour*kurs отношения к РНР никакого не имеет, это уже чистый как вы сказали "алгоритм" клиента. Пусть он им и занимается, а речь идет о просчете чего-то по умолчанию при загрузке страницы. Нахрена для этого нужен клиент если все что нужно РНР, это в месте выводящем по умолчанию сделать банальный вывод

<?=$price*$current?>


Сообщение от Белый шум
завтра понадобится добавить умножение на коэффициент, послезавтра - прибавить константу
И какие проблемы если их определяют на сервере и сервер в любом случае и так к ним будет обращаться?

А через год война атомная.... ну что пороть не понять что.

Вот чтобы не забыть, в одном месте, и никак не в скриптах клиентских, а на сервере и определяются параметры и значения. Клиентский скрипт же пишется под них.
Ответить с цитированием
  #18 (permalink)  
Старый 21.08.2017, 11:02
Интересующийся
Отправить личное сообщение для pava467 Посмотреть профиль Найти все сообщения от pava467
 
Регистрация: 21.08.2017
Сообщений: 14

Так а мне что делать то с кодом?
Ответить с цитированием
  #19 (permalink)  
Старый 21.08.2017, 17:09
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от pava467
Так а мне что делать то с кодом?
Курс валюты сервер должен получать один раз в сутки по окончанию торгов на валютной бирже. Если этот курс используется только для расчета в этой форме (не считая вывода для информации), то выгодно его помещать в атрибут поля формы, по изменению значения в котором производится расчет. Иначе курс нужно выводить как js-переменную, но не в скриптах подключаемых, а в теле страницы. В атрибут поля нужно поместить и цену за час.

Очень странная форма у вас, кроме скрытых полей в ней ничего нет, а поля с именем "k-less" не видно, но в общем это может выглядеть так и сразу с выводом в рублях для этого значения по умолчанию:

<input name="k-less" value="1" data-price="<?=$perhour?>" data-usd="<?=$currency?>" />
<span class="k-cost"><?=$perhour * $currency?></span>


Клиент обрабатывает расчет по мере ввода в поле:

$(window).load(function() {
    $('input[name="k-less"]').change(function () {
        var o = $(this);
        $('.k-cost').text(o.data('price') * o.data('usd') * this.value);
    });
});


Запрос же в базу обязательно заменить, то что у вас написано, это мягко выражаясь ахинея. Последняя запись в базу, это из отсортированных в обратном порядке по ID или времени добавления записи взять первую (LIMIT 1).

Если при этом интересует только поле id, то только его и нужно получать. Но если его получение для <?=$v['id']+1?> (это краткая запись <?php echo $v['id']+1; ?>), которое будет служить новым идентификатором для новой записи, то это грубейшая ошибка. Идентификаторы записей, это зачастую первичный ключ с автоинкрементом. Если таким образом формировать идентификаторы записей в базе, то это можно делать только если у этой таблицы будет один единственный пользователь, что вряд ли в вашем случае верно. А это означает, что неизбежны ситуации, когда один из пользователей, которым вашим кодом будет сформирован один и тот же следующий ID, запишет в базу, а попытка записи второго приведет к ошибке дублирования ключа. Если даже это не первичный ключ с автоинкрементом, то запись второго пользователя заменит запись первого.

Последний раз редактировалось laimas, 21.08.2017 в 17:14.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка данных формы. Как выглядит структура метода с AJAX (по JQuery)? Coriolan161 AJAX и COMET 5 24.11.2015 20:17
Отправка формы при загрузке страницы Shimmy AJAX и COMET 7 26.11.2013 14:51
Выезжающие\уезжающие div при загрузке страницы goodkot Элементы интерфейса 1 28.09.2012 08:58
Изменение данных при загрузке в модели LimYoHwan ExtJS 5 20.08.2012 15:40
Вывод данных единожды, при открытии окна? Ggorsh Events/DOM/Window 1 28.04.2009 01:04