
30.08.2015, 14:15
|
|
Аспирант
|
|
Регистрация: 29.08.2015
Сообщений: 46
|
|
Сообщение от рони
|
PHP Useless,
важно правильно прописать классы как в примере в каждой таблице ...
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<table width="400" class="qrup" >
<thead>
<tr>
<th>Fənnlər</th>
<th>D</th>
<th>Y</th>
<th>FB</th>
</tr>
</thead>
<tbody>
<tr class="study">
<td>Ana dili</td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr class="study">
<td>Riyaziyyat</td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr class="study">
<td>Fizika</td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr>
<td colspan="2" ></td>
<td >Sizin Balınız</td>
<td class="result"></td>
</tr>
</tbody>
</table>
<table width="400" class="qrup" >
<thead>
<tr>
<th>Fənnlər</th>
<th>D</th>
<th>D-A</th>
<th>Y</th>
<th>FB</th>
</tr>
</thead>
<tbody>
<tr class="study">
<td>Ana dili</td>
<td><input name=""></td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr class="study">
<td>Riyaziyyat</td>
<td><input name=""></td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr class="study">
<td>Fizika</td>
<td><input name=""></td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr>
<td colspan="3" ></td>
<td>Sizin Balınız</td>
<td class="result"></td>
</tr>
</tbody>
</table>
<script>
var fb = [function(a, b) { //формулы для каждой таблицы по порядку
return 1 * (4 * a - b) //k1 = 1
}, function(a, b, c) {
return 2 * (4 * a - b + c) //k1 = 2
}],
total = function(a) {
return a.reduce(function(a, b) {
return a + b
}, 0)
};
[].forEach.call(document.querySelectorAll(".qrup"), function(table, i) {
var sum = [],
result = table.querySelector(".result");
[].forEach.call(table.querySelectorAll(".study"), function(tr, k) {
var temp = [],
interim = tr.querySelector(".interim");
sum[k] = 0;
[].forEach.call(tr.querySelectorAll("input"), function(input, j) {
temp[j] = 0;
input.addEventListener("input", function() {
var val = +input.value || 0;
input.value = temp[j] = val;
sum[k] = fb[i].apply(null, temp);
interim.innerHTML = sum[k];
result.innerHTML = total(sum)
})
})
})
});
</script>
</body>
</html>
|
и к1 это для разных предметов свой Родной язык(1) Математика(2) Физика(2)
Химия(1)
Иностранный язык(1)
|
|

30.08.2015, 14:29
|
|
Аспирант
|
|
Регистрация: 29.08.2015
Сообщений: 46
|
|
Сообщение от рони
|
PHP Useless,
важно правильно прописать классы как в примере в каждой таблице ...
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<table width="400" class="qrup" >
<thead>
<tr>
<th>Fənnlər</th>
<th>D</th>
<th>Y</th>
<th>FB</th>
</tr>
</thead>
<tbody>
<tr class="study">
<td>Ana dili</td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr class="study">
<td>Riyaziyyat</td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr class="study">
<td>Fizika</td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr>
<td colspan="2" ></td>
<td >Sizin Balınız</td>
<td class="result"></td>
</tr>
</tbody>
</table>
<table width="400" class="qrup" >
<thead>
<tr>
<th>Fənnlər</th>
<th>D</th>
<th>D-A</th>
<th>Y</th>
<th>FB</th>
</tr>
</thead>
<tbody>
<tr class="study">
<td>Ana dili</td>
<td><input name=""></td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr class="study">
<td>Riyaziyyat</td>
<td><input name=""></td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr class="study">
<td>Fizika</td>
<td><input name=""></td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr>
<td colspan="3" ></td>
<td>Sizin Balınız</td>
<td class="result"></td>
</tr>
</tbody>
</table>
<script>
var fb = [function(a, b) { //формулы для каждой таблицы по порядку
return 1 * (4 * a - b) //k1 = 1
}, function(a, b, c) {
return 2 * (4 * a - b + c) //k1 = 2
}],
total = function(a) {
return a.reduce(function(a, b) {
return a + b
}, 0)
};
[].forEach.call(document.querySelectorAll(".qrup"), function(table, i) {
var sum = [],
result = table.querySelector(".result");
[].forEach.call(table.querySelectorAll(".study"), function(tr, k) {
var temp = [],
interim = tr.querySelector(".interim");
sum[k] = 0;
[].forEach.call(tr.querySelectorAll("input"), function(input, j) {
temp[j] = 0;
input.addEventListener("input", function() {
var val = +input.value || 0;
input.value = temp[j] = val;
sum[k] = fb[i].apply(null, temp);
interim.innerHTML = sum[k];
result.innerHTML = total(sum)
})
})
})
});
</script>
</body>
</html>
|
не для каждой таблицы а для каждой строки правильной так
var fb = [function(a, b, с) {
return 1 * (4 * a - b + 4*с) //k1 = 1
}, function(a, b, c) {
return 2 * (4 * a - b + 4*c) //k1 = 2
должно быть так (4*D+4*D-A)*1 или 2 в зависимости от предмета (математика 2 а вот родной язык 1)
|
|

30.08.2015, 14:48
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,153
|
|
PHP Useless, попробуйте разобраться, коэффициент добавляет в теге предмета data-k, функции изменены
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<table width="400" class="qrup" >
<thead>
<tr>
<th>Fənnlər</th>
<th>D</th>
<th>Y</th>
<th>FB</th>
</tr>
</thead>
<tbody>
<tr class="study" data-k="1">
<td>Родной язык</td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr class="study" data-k="2">
<td>Математика</td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr class="study" data-k="2">
<td>Физика</td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr>
<td colspan="2" ></td>
<td >Sizin Balınız</td>
<td class="result"></td>
</tr>
</tbody>
</table>
<table width="400" class="qrup" >
<thead>
<tr>
<th>Fənnlər</th>
<th>D</th>
<th>D-A</th>
<th>Y</th>
<th>FB</th>
</tr>
</thead>
<tbody>
<tr class="study" data-k="1">
<td>Родной язык</td>
<td><input name=""></td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr class="study" data-k="2">
<td>Математика</td>
<td><input name=""></td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr class="study" data-k="2">
<td>Физика</td>
<td><input name=""></td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr>
<td colspan="3" ></td>
<td>Sizin Balınız</td>
<td class="result"></td>
</tr>
</tbody>
</table>
<script>
var fb = [function(a, b) { //формулы для каждой таблицы по порядку
return 4 * a - b
}, function(a, b, c) {
return 4 * a + b - c
}],
total = function(a) {
return a.reduce(function(a, b) {
return a + b
}, 0)
};
[].forEach.call(document.querySelectorAll(".qrup"), function(table, i) {
var sum = [],
result = table.querySelector(".result");
[].forEach.call(table.querySelectorAll(".study"), function(tr, n) {
var temp = [],
interim = tr.querySelector(".interim"), k = +tr.dataset.k||1;
sum[n] = 0;
[].forEach.call(tr.querySelectorAll("input"), function(input, j) {
temp[j] = 0;
input.addEventListener("input", function() {
var val = +input.value || 0;
input.value = temp[j] = val;
sum[n] = fb[i].apply(null, temp) * k;
interim.innerHTML = sum[n];
result.innerHTML = total(sum)
})
})
})
});
</script>
</body>
</html>
|
|

30.08.2015, 15:27
|
|
Аспирант
|
|
Регистрация: 29.08.2015
Сообщений: 46
|
|
Сообщение от рони
|
PHP Useless, попробуйте разобраться, коэффициент добавляет в теге предмета data-k, функции изменены
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<table width="400" class="qrup" >
<thead>
<tr>
<th>Fənnlər</th>
<th>D</th>
<th>Y</th>
<th>FB</th>
</tr>
</thead>
<tbody>
<tr class="study" data-k="1">
<td>Родной язык</td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr class="study" data-k="2">
<td>Математика</td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr class="study" data-k="2">
<td>Физика</td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr>
<td colspan="2" ></td>
<td >Sizin Balınız</td>
<td class="result"></td>
</tr>
</tbody>
</table>
<table width="400" class="qrup" >
<thead>
<tr>
<th>Fənnlər</th>
<th>D</th>
<th>D-A</th>
<th>Y</th>
<th>FB</th>
</tr>
</thead>
<tbody>
<tr class="study" data-k="1">
<td>Родной язык</td>
<td><input name=""></td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr class="study" data-k="2">
<td>Математика</td>
<td><input name=""></td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr class="study" data-k="2">
<td>Физика</td>
<td><input name=""></td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr>
<td colspan="3" ></td>
<td>Sizin Balınız</td>
<td class="result"></td>
</tr>
</tbody>
</table>
<script>
var fb = [function(a, b) { //формулы для каждой таблицы по порядку
return 4 * a - b
}, function(a, b, c) {
return 4 * a + b - c
}],
total = function(a) {
return a.reduce(function(a, b) {
return a + b
}, 0)
};
[].forEach.call(document.querySelectorAll(".qrup"), function(table, i) {
var sum = [],
result = table.querySelector(".result");
[].forEach.call(table.querySelectorAll(".study"), function(tr, n) {
var temp = [],
interim = tr.querySelector(".interim"), k = +tr.dataset.k||1;
sum[n] = 0;
[].forEach.call(tr.querySelectorAll("input"), function(input, j) {
temp[j] = 0;
input.addEventListener("input", function() {
var val = +input.value || 0;
input.value = temp[j] = val;
sum[n] = fb[i].apply(null, temp) * k;
interim.innerHTML = sum[n];
result.innerHTML = total(sum)
})
})
})
});
</script>
</body>
</html>
|
Почему при удалении части кода которая мне не нужна скрипт не работает?
<table width="400" class="qrup" >
013
<thead>
014
<tr>
015
<th>Fənnlər</th>
016
<th>D</th>
017
<th>Y</th>
018
<th>FB</th>
019
</tr>
020
</thead>
021
<tbody>
022
<tr class="study" data-k="1">
023
<td>Родной язык</td>
024
<td><input name=""></td>
025
<td><input name=""></td>
026
<td class="interim"></td>
027
</tr>
028
<tr class="study" data-k="2">
029
<td>Математика</td>
030
<td><input name=""></td>
031
<td><input name=""></td>
032
<td class="interim"></td>
033
</tr>
034
<tr class="study" data-k="2">
035
<td>Физика</td>
036
<td><input name=""></td>
037
<td><input name=""></td>
038
<td class="interim"></td>
039
</tr>
040
<tr>
041
<td colspan="2" ></td>
042
<td >Sizin Balınız</td>
043
<td class="result"></td>
044
</tr>
045
</tbody>
046
</table>
|
|

30.08.2015, 15:35
|
|
Аспирант
|
|
Регистрация: 29.08.2015
Сообщений: 46
|
|
Сообщение от рони
|
PHP Useless, попробуйте разобраться, коэффициент добавляет в теге предмета data-k, функции изменены
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<table width="400" class="qrup" >
<thead>
<tr>
<th>Fənnlər</th>
<th>D</th>
<th>Y</th>
<th>FB</th>
</tr>
</thead>
<tbody>
<tr class="study" data-k="1">
<td>Родной язык</td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr class="study" data-k="2">
<td>Математика</td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr class="study" data-k="2">
<td>Физика</td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr>
<td colspan="2" ></td>
<td >Sizin Balınız</td>
<td class="result"></td>
</tr>
</tbody>
</table>
<table width="400" class="qrup" >
<thead>
<tr>
<th>Fənnlər</th>
<th>D</th>
<th>D-A</th>
<th>Y</th>
<th>FB</th>
</tr>
</thead>
<tbody>
<tr class="study" data-k="1">
<td>Родной язык</td>
<td><input name=""></td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr class="study" data-k="2">
<td>Математика</td>
<td><input name=""></td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr class="study" data-k="2">
<td>Физика</td>
<td><input name=""></td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr>
<td colspan="3" ></td>
<td>Sizin Balınız</td>
<td class="result"></td>
</tr>
</tbody>
</table>
<script>
var fb = [function(a, b) { //формулы для каждой таблицы по порядку
return 4 * a - b
}, function(a, b, c) {
return 4 * a + b - c
}],
total = function(a) {
return a.reduce(function(a, b) {
return a + b
}, 0)
};
[].forEach.call(document.querySelectorAll(".qrup"), function(table, i) {
var sum = [],
result = table.querySelector(".result");
[].forEach.call(table.querySelectorAll(".study"), function(tr, n) {
var temp = [],
interim = tr.querySelector(".interim"), k = +tr.dataset.k||1;
sum[n] = 0;
[].forEach.call(tr.querySelectorAll("input"), function(input, j) {
temp[j] = 0;
input.addEventListener("input", function() {
var val = +input.value || 0;
input.value = temp[j] = val;
sum[n] = fb[i].apply(null, temp) * k;
interim.innerHTML = sum[n];
result.innerHTML = total(sum)
})
})
})
});
</script>
</body>
</html>
|
Исправил Все работает СПАСИБО, и как поставить ограничение на переменные a и b чтоб а был ниже 21 больше нельзя
|
|

30.08.2015, 16:06
|
|
Аспирант
|
|
Регистрация: 29.08.2015
Сообщений: 46
|
|
Сообщение от рони
|
PHP Useless, попробуйте разобраться, коэффициент добавляет в теге предмета data-k, функции изменены
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<table width="400" class="qrup" >
<thead>
<tr>
<th>Fənnlər</th>
<th>D</th>
<th>Y</th>
<th>FB</th>
</tr>
</thead>
<tbody>
<tr class="study" data-k="1">
<td>Родной язык</td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr class="study" data-k="2">
<td>Математика</td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr class="study" data-k="2">
<td>Физика</td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr>
<td colspan="2" ></td>
<td >Sizin Balınız</td>
<td class="result"></td>
</tr>
</tbody>
</table>
<table width="400" class="qrup" >
<thead>
<tr>
<th>Fənnlər</th>
<th>D</th>
<th>D-A</th>
<th>Y</th>
<th>FB</th>
</tr>
</thead>
<tbody>
<tr class="study" data-k="1">
<td>Родной язык</td>
<td><input name=""></td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr class="study" data-k="2">
<td>Математика</td>
<td><input name=""></td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr class="study" data-k="2">
<td>Физика</td>
<td><input name=""></td>
<td><input name=""></td>
<td><input name=""></td>
<td class="interim"></td>
</tr>
<tr>
<td colspan="3" ></td>
<td>Sizin Balınız</td>
<td class="result"></td>
</tr>
</tbody>
</table>
<script>
var fb = [function(a, b) { //формулы для каждой таблицы по порядку
return 4 * a - b
}, function(a, b, c) {
return 4 * a + b - c
}],
total = function(a) {
return a.reduce(function(a, b) {
return a + b
}, 0)
};
[].forEach.call(document.querySelectorAll(".qrup"), function(table, i) {
var sum = [],
result = table.querySelector(".result");
[].forEach.call(table.querySelectorAll(".study"), function(tr, n) {
var temp = [],
interim = tr.querySelector(".interim"), k = +tr.dataset.k||1;
sum[n] = 0;
[].forEach.call(tr.querySelectorAll("input"), function(input, j) {
temp[j] = 0;
input.addEventListener("input", function() {
var val = +input.value || 0;
input.value = temp[j] = val;
sum[n] = fb[i].apply(null, temp) * k;
interim.innerHTML = sum[n];
result.innerHTML = total(sum)
})
})
})
});
</script>
</body>
</html>
|
А как второй блок добавить? добавил буквы изменил все не заработал даже первый
|
|

30.08.2015, 17:34
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,153
|
|
|
PHP Useless,
ненадо копировать сообщения целиком, всё что мог написано выше, вникайте находите зависимости, смотрите код и не пихайте всё в html, есть и css для красоты.
|
|

30.08.2015, 18:08
|
|
Аспирант
|
|
Регистрация: 29.08.2015
Сообщений: 46
|
|
Сообщение от рони
|
PHP Useless,
ненадо копировать сообщения целиком, всё что мог написано выше, вникайте находите зависимости, смотрите код и не пихайте всё в html, есть и css для красоты.
|
а так можно скопировать весь код два раза и буквы сменить будет работать?
|
|

30.08.2015, 18:33
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,153
|
|
|
PHP Useless,
важно только классы
у table => class="qrup"
у строк предметов tr => class="study" data-k="1"
куда выводить td => class="interim"
общий результат td => class="result"
остальное куда хотите и что хотите
массив fb только заполните по количеству таблиц.
всё
|
|

30.08.2015, 18:42
|
|
Аспирант
|
|
Регистрация: 29.08.2015
Сообщений: 46
|
|
Сообщение от рони
|
PHP Useless,
важно только классы
у table => class="qrup"
у строк предметов tr => class="study" data-k="1"
куда выводить td => class="interim"
общий результат td => class="result"
остальное куда хотите и что хотите
массив fb только заполните по количеству таблиц.
всё
|
поменял на это новый(второй) блок не работает
<table width="100" class="qru" >
<thead>
<tr>
<th bgcolor="#E0E0E0">Fənnlər</th>
<th bgcolor="#E0E0E0">D</th>
<th bgcolor="#E0E0E0">D-A</th>
<th bgcolor="#E0E0E0">Y</th>
<th bgcolor="#E0E0E0">FB</th>
</tr>
</thead>
<tbody>
<tr class="stud" data-k="1">
<td>sdfds</td>
<td><input name="" size="3" maxlength="2"></td>
<td><input name=""size="3" maxlength="2"></td>
<td><input name="" size="3" maxlength="2"></td>
<td class="interi" ></td>
</tr>
<tr class="stud" data-k="2">
<td>Riyaziyyat</td>
<td><input name="" size="3" maxlength="2"></td>
<td><input name="" size="3" maxlength="2"></td>
<td><input name="" size="3" maxlength="2"></td>
<td class="interi"></td>
</tr>
<tr class="stud" data-k="2">
<td>Fizika</td>
<td><input name="" size="3" maxlength="2"></td>
<td><input name="" size="3" maxlength="2"></td>
<td><input name="" size="3" maxlength="2"></td>
<td class="interi"></td>
</tr>
<tr class="stud" data-k="1">
<td>Kimya</td>
<td><input name="" size="3" maxlength="2"></td>
<td><input name="" size="3" maxlength="2"></td>
<td><input name="" size="3" maxlength="2"></td>
<td class="interi"></td>
</tr>
<tr class="stud" data-k="1">
<td>Xarici dil</td>
<td><input name="" size="3" maxlength="2"></td>
<td><input name="" size="3" maxlength="2"></td>
<td><input name="" size="3" maxlength="2"></td>
<td class="interi"></td>
</tr>
<tr>
<td colspan="3" ></td>
<td>Sizin Balınız:</td>
<td class="resul"></td>
</tr>
</tbody>
</table>
<script>
var fb = [ function(a, b, c) {
return 4 * a + 4*b - c
}],
total = function(a) {
return a.reduce(function(a, b) {
return a + b
}, 0)
};
[].forEach.call(document.querySelectorAll(".qru"), function(table, i) {
var sum = [],
resul = table.querySelector(".resul");
[].forEach.call(table.querySelectorAll(".stud"), function(tr, n) {
var temp = [],
interi = tr.querySelector(".interi"), k = +tr.dataset.k||1;
sum[n] = 0;
[].forEach.call(tr.querySelectorAll("input"), function(input, j) {
temp[j] = 0;
input.addEventListener("input", function() {
var val = +input.value || 0;
input.value = temp[j] = val;
sum[n] = fb[i].apply(null, temp) * k;
interim.innerHTML = sum[n];
result.innerHTML = total(sum)
})
})
})
});
</script>
Последний раз редактировалось PHP Useless, 30.08.2015 в 18:47.
|
|
|
|