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

Тема в разделе "HTML, CSS, XML, JavaScript", создана пользователем Naj, 18 мар 2007.

Статус темы:
Закрыта.
  1. Naj

    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>
     
  2. Artexoid

    Artexoid Гость

    Для: Naj

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

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

    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
    }
    А сколько ему еще раз выполняться :) ?

    Наверное вы хотели вот так написать?:
    Код (Text):
    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:
     
  3. Naj

    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

    }



    тоже не работает..
     
  4. Artexoid

    Artexoid Гость

    Для: Naj

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

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

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

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

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

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

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

    Код (Text):
    <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>
     
  5. Naj

    Naj Гость

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

    Artexoid Гость

    Для: Naj

    Вставляет в нудный объект, текст, ну или что-там нужно :). Вы код этот воткните и разбирайтесь, что как работает и что за что отвечает :) !
     
Загрузка...
Похожие Темы - Помогите найти ошибку
  1. OlgaZag
    Ответов:
    1
    Просмотров:
    1.292
  2. OlgaZag
    Ответов:
    0
    Просмотров:
    524
  3. Google313
    Ответов:
    0
    Просмотров:
    1.000
  4. Marikd
    Ответов:
    2
    Просмотров:
    1.210
  5. ruivit
    Ответов:
    2
    Просмотров:
    1.329
Статус темы:
Закрыта.

Поделиться этой страницей