Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вычисление javascript (https://javascript.ru/forum/misc/57986-vychislenie-javascript.html)

PHP Useless 29.08.2015 08:29

Вычисление javascript
 
Есть код жс точнее кусок
<script  type="text/javascript" > 
function getNum1(d1_1,y1_1,d2_1, y2_1,d3_1,  y3_1,d4_1, y4_1,d5_1, y5_1, da1_1
{ 
 
var k1 = 1;
var k2 = 2;
var k3 = 2;
var k4 = 1;
var k5 = 1;
 
 
 
// alert(val);
// if(d1_1>25){d1_1=25}
var nb1= ((((4*d1_1)-y1_1)+da1_1))*k1;

добавил переменную da1_1 и для ввода этого написал но ошибку NaN даёт
<td    align="center" ><input name="da1_1" type="text" class="form" id="da1_1" size="3" maxlength="2" />        </td>
НЕ РАБОТАНТ ХЕЛп ПЛИЗ :help:

EmperioAf 29.08.2015 09:38

http://javascript.ru/NaN
Как правило, оно используется для обозначения ошибки при математических операциях. Вместо генерации исключения, функция возвращает NaN.

PHP Useless 29.08.2015 10:18

Как исправить
 
Цитата:

Сообщение от EmperioAf (Сообщение 386272)
http://javascript.ru/NaN
Как правило, оно используется для обозначения ошибки при математических операциях. Вместо генерации исключения, функция возвращает NaN.

Ну я знаю чё за ошибка мне надо исправить ошибку, все работает добаляю переменную а1_1 выдает ошибку NaN почему?

рони 29.08.2015 10:36

Цитата:

Сообщение от PHP Useless
getNum1(d1_1,

Цитата:

Сообщение от PHP Useless
id="da1_1"

не делайте так и будет вам хорошо

PHP Useless 29.08.2015 10:44

А как иначе сделать
 
Цитата:

Сообщение от рони (Сообщение 386277)
не делайте так и будет вам хорошо

А как иначе как правильно сделать

рони 29.08.2015 10:51

PHP Useless,
function getNum1(a) {

} 
var c = document.getElementById('da1_1').value;
getNum1(c)

PHP Useless 29.08.2015 10:55

Цитата:

Сообщение от рони (Сообщение 386281)
PHP Useless,
function getNum1(a) {

} 
var c = document.getElementById('da1_1').value;
getNum1(c)

а так нельзя? getNum1(d1_1,y1_1,d2_1, y2_1,d3_1, y3_1,d4_1, y4_1,d5_1, y5_1, da1_1
ведь все остальные работают

рони 29.08.2015 11:16

PHP Useless,
лучше не использовать одинаковые названия переменных и id

PHP Useless 29.08.2015 11:34

Цитата:

Сообщение от рони (Сообщение 386289)
PHP Useless,
лучше не использовать одинаковые названия переменных и id

Как сюда интергрировать? Две функции в одном?
<script  type="text/javascript" > 
function getNum1(d1_1,  y1_1,d2_1, y2_1,d3_1,  y3_1,d4_1, y4_1,d5_1, y5_1) 
{ 

var k1 = 1;
var k2 = 2;
var k3 = 2;
var k4 = 1;
var k5 = 1;



// alert(val);
// if(d1_1>25){d1_1=25}
var nb1= ((4*d1_1)-y1_1)*k1;
var nb2= ((4*d2_1)-y2_1)*k2;
var nb3= ((4*d3_1)-y3_1)*k3;
var nb4= ((4*d4_1)-y4_1)*k4;
var nb5= ((4*d5_1)-y5_1)*k5;
var nb=  (nb1+nb2+nb3+nb4+nb5);

Rise 29.08.2015 11:49

Цитата:

Сообщение от PHP Useless (Сообщение 386291)
Как сюда интергрировать? Две функции в одном?

Ты о чем?

EmperioAf 29.08.2015 11:55

Цитата:

Сообщение от PHP Useless
мне надо исправить ошибку

по вашему коду невозможно понять в чём ошибка, т.к. ваш код неполный и невалидный

PHP Useless 29.08.2015 11:57

Цитата:

Сообщение от Rise (Сообщение 386292)
Ты о чем?

Вы разбираетесь с жс?можете помочь?

Rise 29.08.2015 12:08

PHP Useless, помоги мне помочь тебе...

PHP Useless 29.08.2015 17:29

Цитата:

Сообщение от Rise (Сообщение 386292)
Ты о чем?

Я не вам писал

рони 29.08.2015 17:35

PHP Useless,
может опишите задачу что хотите сделать?

Rise 30.08.2015 00:27

PHP Useless, а кому ты здесь пишешь?)

EmperioAf 30.08.2015 09:43

Цитата:

Сообщение от Rise (Сообщение 386377)
PHP Useless, а кому ты здесь пишешь?)

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

PHP Useless 30.08.2015 10:26

Цитата:

Сообщение от EmperioAf (Сообщение 386405)
Мне, скорей всего. Но похоже он не заметил моего сообщения, что по его коду невозможно полностью локализовать проблему

Цитата:

Сообщение от Rise (Сообщение 386377)
PHP Useless, а кому ты здесь пишешь?)

Цитата:

Сообщение от рони (Сообщение 386331)
PHP Useless,
может опишите задачу что хотите сделать?

Вот помогаю мне помочь)Вот основной сайт http://repetitor.az/index/mycalc.php?lang=3 А вот тестовый http://bit.ly/testoviy где я хочу добавить одну вещь, если Вы откройте основной сайт увидите 4 блока, но пока 1-ый блок, увидите это то есть столбцы D, Y, FB, а вот я хочу добавить ещё один столбец D-A, как на тестовом вот так добавил , И вот теперь хочу добавить функции сейчас функция такая
А я хочу так А код жавы открытый (Просмотр кода страницы)ВОТ ВСЁ:help:

рони 30.08.2015 10:41

PHP Useless,
k1 откуда берёте?

PHP Useless 30.08.2015 11:18

Цитата:

Сообщение от рони (Сообщение 386413)
PHP Useless,
k1 откуда берёте?

Это константа в скрипте написано к1=1

PHP Useless 30.08.2015 12:04

Цитата:

Сообщение от рони (Сообщение 386413)
PHP Useless,
k1 откуда берёте?

Вот скрипт одного блока
<script  type="text/javascript" > 
function getNum1(d1_1,  y1_1,d2_1, y2_1,d3_1,  y3_1,d4_1, y4_1,d5_1, y5_1) 
{ 

var k1 = 1;
var k2 = 2;
var k3 = 2;
var k4 = 1;
var k5 = 1;



// alert(val);
// if(d1_1>25){d1_1=25}
var nb1= ((4*d1_1)-y1_1)*k1;
var nb2= ((4*d2_1)-y2_1)*k2;
var nb3= ((4*d3_1)-y3_1)*k3;
var nb4= ((4*d4_1)-y4_1)*k4;
var nb5= ((4*d5_1)-y5_1)*k5;
var nb=  (nb1+nb2+nb3+nb4+nb5);
	var numb = document.getElementById('result1');
	var numb1 = document.getElementById('result1_1');
	var numb2 = document.getElementById('result1_2');
	var numb3 = document.getElementById('result1_3');
	var numb4 = document.getElementById('result1_4');
	var numb5 = document.getElementById('result1_5');

	if(navigator.appName == "Microsoft Internet Explorer")
	{	numb.innerText = nb;
		numb1.innerText = nb1;
		numb2.innerText = nb2;
		numb3.innerText = nb3;
		numb4.innerText = nb4;
		numb5.innerText = nb5;
	 }
	else
	{  var numb = document.getElementById('result1');
		numb.textContent = nb;
		numb1.textContent = nb1;
		numb2.textContent = nb2;
		numb3.textContent = nb3;
		numb4.textContent = nb4;
		numb5.textContent = nb5;
	 }
  
}

рони 30.08.2015 12:43

общая сумма для строк в таблице
 
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>

PHP Useless 30.08.2015 14:09

Цитата:

Сообщение от рони (Сообщение 386453)
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>

Но класс Y должен отнимать баллы а D-A прибавляеть

PHP Useless 30.08.2015 14:15

Цитата:

Сообщение от рони (Сообщение 386453)
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)

PHP Useless 30.08.2015 14:29

Цитата:

Сообщение от рони (Сообщение 386453)
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

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>

PHP Useless 30.08.2015 15:27

Цитата:

Сообщение от рони (Сообщение 386495)
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>

PHP Useless 30.08.2015 15:35

Цитата:

Сообщение от рони (Сообщение 386495)
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 больше нельзя

PHP Useless 30.08.2015 16:06

Цитата:

Сообщение от рони (Сообщение 386495)
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

PHP Useless,
ненадо копировать сообщения целиком, всё что мог написано выше, вникайте находите зависимости, смотрите код и не пихайте всё в html, есть и css для красоты.

PHP Useless 30.08.2015 18:08

Цитата:

Сообщение от рони (Сообщение 386565)
PHP Useless,
ненадо копировать сообщения целиком, всё что мог написано выше, вникайте находите зависимости, смотрите код и не пихайте всё в html, есть и css для красоты.

а так можно скопировать весь код два раза и буквы сменить будет работать?

рони 30.08.2015 18:33

PHP Useless,
важно только классы
у table => class="qrup"
у строк предметов tr => class="study" data-k="1"
куда выводить td => class="interim"
общий результат td => class="result"
остальное куда хотите и что хотите
массив fb только заполните по количеству таблиц.
всё

PHP Useless 30.08.2015 18:42

Цитата:

Сообщение от рони (Сообщение 386574)
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>

рони 30.08.2015 18:52

PHP Useless,
строка 76 и 77

PHP Useless 30.08.2015 19:02

Цитата:

Сообщение от рони (Сообщение 386578)
PHP Useless,
строка 76 и 77

Заработало спасибо,По Вашему совету написал css Вот теперь слово NADPIS я его не в wraperr'е написал а он внутри его посередине стоит не могу ниже сделать http://savalanli.tk/back/bal/

рони 30.08.2015 19:27

PHP Useless,
читайте про css - одно только непойму зачем два скрипта делать ? один скрипт расчитан на любое количество таблиц

PHP Useless 30.08.2015 19:32

Цитата:

Сообщение от рони (Сообщение 386584)
PHP Useless,
читайте про css - одно только непойму зачем два скрипта делать ? один скрипт расчитан на любое количество таблиц

4 группы для каждой разная

рони 30.08.2015 19:38

Цитата:

Сообщение от PHP Useless
4 группы для каждой разная

один!!!

рони 30.08.2015 19:41

PHP Useless,
хоть 1000 групп -- хватит одного скрипта

PHP Useless 30.08.2015 19:49

Цитата:

Сообщение от рони (Сообщение 386588)
PHP Useless,
хоть 1000 групп -- хватит одного скрипта

как в них же предметы разные?


Часовой пояс GMT +3, время: 14:19.