17.09.2015, 05:20
|
Профессор
|
|
Регистрация: 15.09.2015
Сообщений: 180
|
|
Сообщение от nesnayka
|
Держите, в тех понятиях, которые я расписывал:
<script>
var timerId = setInterval(function() {
var sum = 0;
for(i=1;i<=30;i++){
document.getElementById('chs'+i).value=parseFloat(document.getElementById('hvl'+i).value) * parseFloat(document.getElementById('sht'+i).value) / 100; // - перемножаем 1-ю колонку на вторую и записываем в третью
sum += parseFloat(document.getElementById('chs'+i).value); // - суммируем все из 3-й колонки
}
document.getElementById('chas').value = sum; // - записываем сумму в поле "Общее время"
document.getElementById('efekt').value=parseFloat(document.getElementById('chas').value) / 480 * 100; // - высчитываем эффект и записываем в соотв. поле.
if(parseFloat(document.getElementById('efekt').value)<50) // - если эффект. <50,
document.getElementById('prem').value = 0; // - в поле "Премия " пишем 0
else // - если больше или равно
document.getElementById('prem').value = '25%'; // - в поле "Премия " пишем 25% (ну или что туда нужно)
} , 1000);
</script>
У Рони более изящно и подходит для общего случая, но для вас, как для новичка, менее понятно. )
|
Не работает! Что-то где-то не так. Пересмотрите пожалуйста
Последний раз редактировалось Sav2907, 17.09.2015 в 06:10.
|
|
17.09.2015, 05:22
|
Профессор
|
|
Регистрация: 15.09.2015
Сообщений: 180
|
|
Сообщение от рони
|
Sav2907,
при условии что премия за эффект 80 в вашей таблице вычислена неверно, иначе пишите обьект со всеми значениями{эффект : премия, ...}
...
|
Спасибо, работает. Но там в таблице все верно, как переписать всю таблицу и вставить?
Последний раз редактировалось devote, 17.09.2015 в 09:54.
Причина: сократил
|
|
17.09.2015, 05:35
|
Профессор
|
|
Регистрация: 15.09.2015
Сообщений: 180
|
|
Там сначала проценты увеличиваются на 0,5 а затем на 1,5 а потом снова на 0,5. Эффект от 50 до 76 по 0,5. От 76 до 113 по 1,5. А от 113 до 200 по 0,5. И если зножете, то действительно распишите чтобы я смог разобраться. спасибо вам за помощь.
Последний раз редактировалось Sav2907, 17.09.2015 в 06:42.
|
|
17.09.2015, 07:27
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Sav2907,
смотрите сообщение 15 снова, и не копируйте сообщения целиком
|
|
17.09.2015, 10:08
|
Профессор
|
|
Регистрация: 15.09.2015
Сообщений: 180
|
|
Сообщение от рони
|
Sav2907,
смотрите сообщение 15 снова, и не копируйте сообщения целиком
|
Вижу вы изменили код, сейчас я с телефона зашел, проверить не могу. Но заранее благодарю. Что вы имеете в виду, не копировать сообщение?
|
|
17.09.2015, 11:20
|
Профессор
|
|
Регистрация: 15.09.2015
Сообщений: 180
|
|
рони,
Можете еще описать скрипт, чтобы иметь представление что к чему
|
|
17.09.2015, 12:27
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Сообщение от Sav2907
|
Что вы имеете в виду, не копировать сообщение?
|
целиком ненадо копировать, засоряет топик
|
|
17.09.2015, 15:48
|
Профессор
|
|
Регистрация: 15.09.2015
Сообщений: 180
|
|
рони,
Все супер, работает. Только изменил
for (var c = 20.5, d = 51; d < b | 0; d++) {
потому что считало не так, как в таблице.
Опишите пожалуйста скрипт, это последняя просьба
|
|
17.09.2015, 15:51
|
Профессор
|
|
Регистрация: 15.09.2015
Сообщений: 180
|
|
рони,
показывает все верно, только когда эффект 50, то премия 20.5 а не 20
Должно быть так, когда 50 то 20, а когда 100 то 69. Чтобы проверить впишите в первое поле 4, а во второй 6000, затем вместо 6000 введите 12000
Нашел вот так должно быть
for (var c = 20, d = 50; d < b | 0; d++) {
Последний раз редактировалось Sav2907, 17.09.2015 в 15:56.
|
|
17.09.2015, 16:18
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Sav2907,
вам виднее -- на картинке вы указали для 50 => 20, меняйте проверяйте
|
|
|
|