• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Помогите найти ошибку..

  • Автор темы Naj
  • Дата начала
Статус
Закрыто для дальнейших ответов.
N

Naj

вот пишу скрипт который должен выводить количество отличников ударников троечников и двоечников. Условия прописаны в if но почему то он не считает.. смотрит только первое поле и все.. Пишу alert все выводит.. Глючу.. Не вижу в чем прикол..

<html>

<script type = "text/javascript">
function f(obj)

{

var not11 = document.getElementById('note11') // получаем первые оценки
var not12 = document.getElementById('note12')
var not13 = document.getElementById('note13')
var not14 = document.getElementById('note14')
var not15 = document.getElementById('note15')
var not16 = document.getElementById('note16')
var not17 = document.getElementById('note17')
var not18 = document.getElementById('note18')
var not19 = document.getElementById('note19')
var not110 = document.getElementById('note110')

var not21 = document.getElementById('note11') // получаем вторые оценки
var not22 = document.getElementById('note22')
var not23 = document.getElementById('note23')
var not24 = document.getElementById('note24')
var not25 = document.getElementById('note25')
var not26 = document.getElementById('note26')
var not27 = document.getElementById('note27')
var not28 = document.getElementById('note28')
var not29 = document.getElementById('note29')
var not210 = document.getElementById('note210')

n1 = new Array() // массив первых оценок
n1[0] = not11.value
n1[1] = not12.value
n1[2] = not13.value
n1[3] = not14.value
n1[4] = not15.value
n1[5] = not16.value
n1[6] = not17.value
n1[7] = not18.value
n1[8] = not19.value
n1[9] = not110.value

n2 = new Array() // массив вторых оценок
n2[0] = not21.value
n2[1] = not22.value
n2[2] = not23.value
n2[3] = not24.value
n2[4] = not25.value
n2[5] = not26.value
n2[6] = not27.value
n2[7] = not28.value
n2[8] = not29.value
n2[9] = not210.value



ud = 0;
tr = 0;
dv= 0;
ot=0;
i=0;


{

if ((n1==5)&& (n2==5))
ot = ot+1

if (((n1==4)&&(n2==5))||((n1==5)&&(n2==4)))
ud = ud+1

if ((n1==3)||(n2==3))
tr = tr+1

if ((n1==2)||(n2==2))
dv = dv+1

i=i+1
}




document.forma.ores.value = ot
document.forma.tres.value = tr
document.forma.dres.value = dv
document.forma.ures.value = ud


}
</script>


<form name = "forma">
<table border=0>
<tr>
<td> № </td>
<td><center>Имя </center> </td>
<td><center>Оценка 1</center></td>
<td><center>Оценка 2</center></td>
</tr>

<tr>
<td>1</td>
<td><input type="text" id="name1"></td>
<td><input type="text" id="note11"></td>
<td><input type="text" id="note12"></td>
</tr>
<tr>
<td>2</td>
<td><input type="text" id="name2"></td>
<td><input type="text" id="note12"></td>
<td><input type="text" id="note22"></td>
</tr> <tr>
<td>3</td>
<td><input type="text" id="name3"></td>
<td><input type="text" id="note13"></td>
<td><input type="text" id="note23"></td>
</tr> <tr>
<td>4</td>
<td><input type="text" id="name4"></td>
<td><input type="text" id="note14"></td>
<td><input type="text" id="note24"></td>
</tr> <tr>
<td>5</td>
<td><input type="text" id="name5"></td>
<td><input type="text" id="note15"></td>
<td><input type="text" id="note25"></td>
</tr> <tr>
<td>6</td>
<td><input type="text" id="name6"></td>
<td><input type="text" id="note16"></td>
<td><input type="text" id="note26"></td>
</tr> <tr>
<td>7</td>
<td><input type="text" id="name7"></td>
<td><input type="text" id="note17"></td>
<td><input type="text" id="note27"></td>
</tr> <tr>
<td>8</td>
<td><input type="text" id="name8"></td>
<td><input type="text" id="note18"></td>
<td><input type="text" id="note28"></td>
</tr> <tr>
<td>9</td>
<td><input type="text" id="name9"></td>
<td><input type="text" id="note19"></td>
<td><input type="text" id="note29"></td>
</tr> <tr>
<td>10</td>
<td><input type="text" id="name10"></td>
<td><input type="text" id="note110"></td>
<td><input type="text" id="note210"></td>
</tr>
</table>


<input type="button" value="OK" onclick = f(forma)>



<table border=0>
<tr>
<td>Отличники</td>
<td><input type="text" name="ores"></td>
</tr>
<tr>
<td>Ударники</td>
<td><input type="text" name="ures" ></td>
</tr>
<tr>
<td>Троечники</td>
<td><input type="text" name="tres"></td>
</tr>
<tr>
<td>Двоечники</td>
<td><input type="text" name="dres"></td>
</tr>
</table>
</form>
</html>
 
A

Artexoid

Для: Naj

А вы случайно цикл не забыли?? :)

Вот это естественно 1 раз выполняется:
Код:
{

if ((n1[i]==5)&& (n2[i]==5))
ot = ot+1 

if (((n1[i]==4)&&(n2[i]==5))||((n1[i]==5)&&(n2[i]==4)))
ud = ud+1 

if ((n1[i]==3)||(n2[i]==3))
tr = tr+1 

if ((n1[i]==2)||(n2[i]==2))
dv = dv+1 

i=i+1
}
А сколько ему еще раз выполняться :) ?

Наверное вы хотели вот так написать?:
Код:
for (i=0;i<=9;i++)
{
if ((n1[i]==5)&&(n2[i]==5))
ot++
else
if (((n1[i]==4)&&(n2[i]==5))||((n1[i]==5)&&(n2[i]==4)))
ud++ 
else
if ((n1[i]==3)||(n2[i]==3))
tr++
else
if ((n1[i]==2)||(n2[i]==2))
dv++
}
:rolleyes:
 
N

Naj

:rolleyes: я что только не пиасла насчет цикла..

а если пишу так




ud = 0;
tr = 0;
dv= 0;
ot=0;
i=0;


{
for (i=0;i<=9;i++)
{
if ((n1==5)&&(n2==5))
ot++
else
if (((n1==4)&&(n2==5))||((n1==5)&&(n2==4)))
ud++
else
if ((n1==3)||(n2==3))
tr++
else
if ((n1==2)||(n2==2))
dv++
}

document.forma.ores.value = ot
document.forma.tres.value = tr
document.forma.dres.value = dv
document.forma.ures.value = ud

}



тоже не работает..
 
A

Artexoid

Для: Naj

Вы что прикалываетесь :rolleyes: ???

Что за лишние скобки открывающие???, В 1-п примере было 2 бессмысленных скобки, теперь в этом одна открывающая перед for стоит :)...

Вот полный листинг. Целиком вставьте его в документ и всё прекрасно будет работать!!!
Значит я оптимизировал весь код, немного доработал, думаю в лучшую сторону :). Ну если что-то покажется лишним думаю не проблема удалить!

Функция CreateList(num); строит за вас список для ввода
__num – кол-во записей в списке.

Функция Search(num); производит подсчёт результатов
__num – кол-во записей в списке.

Функция Random(num); автоматически заполняет ведомость (так для теста, если самому вбивать не кайф :) )
__num – кол-во записей в списке.

Кол-во записей при вызове ф-ций должно совпадать!

Код:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Ведомость</title>
</head>

<body>
<script language="javascript">
function Search(num)
{
var nm = new Array(); // массив первых оценок
var n1 = new Array(); // массив вторых оценок
var n2 = new Array(); // массив вторых оценок
var ores=document.getElementById('ores');
var ures=document.getElementById('ures');
var tres=document.getElementById('tres');
var dres=document.getElementById('dres');
var tores=document.getElementById('tores');
var tures=document.getElementById('tures');
var ttres=document.getElementById('ttres');
var tdres=document.getElementById('tdres');
ores.innerHTML = 0;
ures.innerHTML = 0;
tres.innerHTML = 0;
dres.innerHTML = 0;
tores.innerHTML = '  Нет данных';
tures.innerHTML = '  Нет данных';
ttres.innerHTML = '  Нет данных';
tdres.innerHTML = '  Нет данных';
for (i=0;i<num;i++)
{
nm[i] = document.getElementById('name'+(i+1)).value;
n1[i] = document.getElementById('note1'+(i+1)).value;
n2[i] = document.getElementById('note2'+(i+1)).value;
}
for (i=0;i<num;i++)
{
if ((n1[i]==5)&&(n2[i]==5))
{
ores.innerHTML++;
tmp='  '+(ores.innerHTML)+'. '+nm[i]+'<br />';
tores.innerHTML=ores.innerHTML==1?tmp:tores.innerHTML+tmp;
}
else
if (((n1[i]==4)&&(n2[i]==5))||((n1[i]==5)&&(n2[i]==4))||((n1[i]==4)&&(n2[i]==4)))
{
ures.innerHTML++ 
tmp='  '+(ures.innerHTML)+'. '+nm[i]+'<br />';
tures.innerHTML=ures.innerHTML==1?tmp:tures.innerHTML+tmp;
}
else
if ((n1[i]==3)||(n2[i]==3))
{
tres.innerHTML++ 
tmp='  '+(tres.innerHTML)+'. '+nm[i]+'<br />';
ttres.innerHTML=tres.innerHTML==1?tmp:ttres.innerHTML+tmp;
}
else
if ((n1[i]==2)||(n2[i]==2))
{
dres.innerHTML++ 
tmp='  '+(dres.innerHTML)+'. '+nm[i]+'<br />';
tdres.innerHTML=dres.innerHTML==1?tmp:tdres.innerHTML+tmp;
}
}
}

function CreateList(num)
{
for (i=0;i<num;i++)
{
document.write('<tr>');
document.write(' <td width="20px">'+(i+1)+'</td>');
document.write(' <td width="180px"><input type="text" id="name'+(i+1)+'" style="width:180px"></td>');
document.write(' <td width="70px"><input type="text" id="note1'+(i+1)+'" style="width:70px"></td>');
document.write(' <td width="70px"><input type="text" id="note2'+(i+1)+'" style="width:70px"></td>');
document.write('</tr>');
}
}

function Random(num)
{
var nf = new Array();
var nn = new Array();
nf[0]='Солодов';
nf[1]='Мирошник';
nf[2]='Якубов';
nf[3]='Песков';
nf[4]='Попов';
nf[5]='Задыба';
nf[6]='Ерёменко';
nf[7]='Агутин';
nf[8]='Сенов';
nf[9]='Капустин';
nf[10]='Сорокин';
nf[11]='Сирафимов';
nf[12]='Носков';
nf[13]='Носов';
nf[14]='Поцин';
nf[15]='Сай';
nf[16]='Семян';
nf[17]='Шурин';
nf[18]='Шынка';
nf[19]='Солодов';
nn[0]='Саша';
nn[1]='Паша';
nn[2]='Миша';
nn[3]='Вася';
nn[4]='Лёша';
nn[5]='Петя';
nn[6]='Рома';
nn[7]='Костя';
nn[8]='Артём';
nn[9]='Женя';
nn[10]='Толик';
nn[11]='Егор';
nn[12]='Лёня';
nn[13]='Серёжа';
nn[14]='Слава';
nn[15]='Витя';
nn[16]='Ярик';
nn[17]='Федя';
nn[18]='Эдик';
nn[19]='Абрам';
for (i=0;i<num;i++)
{
document.getElementById('name'+(i+1)).value=nf[parseInt(Math.random()*20)]+' '+nn[parseInt(Math.random()*20)];
document.getElementById('note1'+(i+1)).value=(parseInt(Math.random()*4)+2);
document.getElementById('note2'+(i+1)).value=(parseInt(Math.random()*4)+2);
}
}
</script> 
<form name = "forma">
<table border=0>
<tr>
<td> № </td>
<td><center>ФИО </center> </td>
<td><center>Оценка 1</center></td>
<td><center>Оценка 2</center></td>
</tr>
<script language="javascript">
CreateList(20);
</script>
</table>
<table border=0>
<tr valign="top">
<td width="20px"></td>
<td width="160px"><input type="button" value="Рандом" onclick = "Random(20)" style="width:100px"></td>
<td width="160px" align="right"><input type="button" value="Подсчитать" onclick = "Search(20)" style="width:100px"></td>
</tr>
</table>
</form>
<table border=0>
<tr valign="top">
<td width="180px">Отличники [<span id="ores">0</span>]</td>
<td width="180px">Хорошисты [<span id="ures">0</span>]</td>
<td width="180px">Троечники [<span id="tres">0</span>]</td>
<td width="180px">Двоечники [<span id="dres">0</span>]</td>
</tr>
<tr valign="top">
<td><span id="tores">  Нет данных</span></td>
<td><span id="tures">  Нет данных</span></td>
<td><span id="ttres">  Нет данных</span></td>
<td><span id="tdres">  Нет данных</span></td>
</tr>
</table>
</body>
</html>
 
N

Naj

Спасибо, я поняла, у меня там и правда скобка была лишняя.. А что такое Inner Html ? объясните чайнику..
 
A

Artexoid

Для: Naj

Вставляет в нудный объект, текст, ну или что-там нужно :). Вы код этот воткните и разбирайтесь, что как работает и что за что отвечает :) !
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!