lessoncounter – представляет собой массив содержащий данные о количестве введенных занятий на выбранный день.
daywarn – представляет собой массив содержащий данные о распределении дней.
rcount – вспомогательная переменная.
3.1.2. Файл script.js.
Функции:
addROW() – проверяет введенные данные и при успехе проверки выполняет занесение данных в таблицу.
changeROW() – выполняет изменение данных в полях таблицы.
События: нет.
Переменные:
Ba – проверка на выполнение необходимых условий для добавления данных в таблицу.
Table – ссылка на таблицу.
z,i,cell,row – вспомогательные переменные. (исп. в циклах).
NewRow – вставка строки в таблицу.
that – вспомогательная переменная. (для запроса формы на изменение значения)
3.1.3. Команды:
prompt – запрос.
3.2. Алгоритмическая структура.
Доступ к объектам осуществляется с помощью, технологии DOM (document.getElementById и document.getElementsByTagName), согласно пунктам технического задания 1.1.
3.3. Листинг программы.
3.3.1. Листинг файла script.js
function addROW()
{
var ba = false;
var Table = document.getElementsByTagName("TBODY")[0];
// Цикла для проверки предыдущих дней, кол - ва пар и т.д....
for(var z=0; z<6; z++)
{
if(document.getElementById("weeklist").options[z].selected && z == 0 && lessoncounter[z] <6) ba = true;
if(document.getElementById("weeklist").options[z].selected && daywarn[z-1] == 1 && z != 0 && lessoncounter[z] <6) ba = true;
}
if(ba && document.getElementById("subject").value.match(/^[a-zа-я]+$/i) && document.getElementById("aud").value.match(/^[0-9]{1,3}$/))
{
var NewRow = Table.insertRow();
for(var i=0; i<6; i++)
{
// Основная цикла...
if(document.getElementById("weeklist").options[i].selected)
{
NewRow.insertCell(0).innerHTML = document.getElementById("weeklist").options[i].text;
daywarn[i] = 1 ;
lessoncounter[i] = lessoncounter[i] + 1;
NewRow.insertCell(1).innerHTML = time[lessoncounter[i]];
NewRow.insertCell(2).innerHTML = document.getElementById("subject").value;
NewRow.insertCell(3).innerHTML = document.getElementById("aud").value;
NewRow.insertCell(4).innerHTML = document.getElementById("lessonlist").options[document.getElementById("lessonlist").selectedIndex].text;
}
}
// Цикла событий...
for(var i=rcount; i<Table.rows.length; i++)
{
var row=Table.rows[i];
for(var j=0; j<row.cells.length; j++)
{
var cell=row.cells[j];
cell.onclick=ChangeRow;
cell.style.cursor = "hand";
}
}
rcount = rcount + 1;
// *********************** \\
} else alert("Что - то нетак :E");
ba = false;
} // функция...
// Функция изменения. / Константин Юрьевич
/*
function changeROW()
{
var that;
if(event.srcElement.tagName=="TD") if(that=prompt("Че надо!?","")) event.srcElement.innerHTML = that;
}
*/
// Функция изменения. / Роман
function ChangeRow()
{
var that;
if(that=prompt("Че надо!?","")) this.innerHTML = that;
}
3.3.2. Листинг файла: index.html (блок: <script></script>)
// Входные данные...
var time = new Array("08.30 - 10.05","10.15 - 11.50","12.30 - 14.05","14.15 - 15.50","16.00 - 17.35","17.45 - 19.20","19.30 - 21.05");
var lessoncounter = new Array(-1,-1,-1,-1,-1,-1,-1);
var daywarn = new Array(0,0,0,0,0,0,0);
var rcount = 0;
Вызов события (при использовании закомментированной функции ChangeRow):
<BODY leftMargin=10 topMargin=10 onclick="changeROW();">
При использовании второго варианта функции ChangeRow – вызывать событие не требуется.
4. Вывод.
В данной лабораторной работе была реализована программа “Расписание занятий”. В программе предоставляется возможность добавления и обновления информации. Так – же ведется контроль ошибок ввода.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.