Viewing file: index.php (13.8 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Система формування академічних довідок ЖДТУ</title> <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/knockout/knockout-3.3.0.js"></script> <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.3.min.js"></script> <script type="text/javascript" src="https://code.jquery.com/ui/1.11.3/jquery-ui.min.js"></script> <link rel="stylesheet" href="https://code.jquery.com/ui/1.11.3/themes/smoothness/jquery-ui.css"/> <script type="text/javascript" src="http://jquery-ui.googlecode.com/svn-history/r3004/trunk/ui/i18n/ui.datepicker-uk.js"></script> <link rel="stylesheet" href="style.css"/> </head> <body> <h1 class="center">Система формування академічних довідок ЖДТУ</h1> <div id="downloadBox"> <a href="#" onclick>Скачати</a> </div> <form id="form" action="/akadem/generate.php"> <table style="margin:0 auto;"> <tr> <td>Академічна довідка №</td> <td><input type="text" class="w1" data-bind="value: dov_number" placeholder="номер" style="width:"/></td> </tr> <tr> <td>Студент: </td> <td><input type="text" class="w2" data-bind="value: dov_name1a" placeholder="Іванов"/> <input type="text" class="w2" data-bind="value: dov_name2a" placeholder="Іван"/> <input type="text" class="w2" data-bind="value: dov_name3a" placeholder="Іванович"/></td> </tr> <tr> <td>Стать: </td> <td> <select data-bind="value: dov_gender"> <option value=""></option> <option value="m">чоловіча</option> <option value="f">жіноча</option> </select> </td> </tr> <tr> <td>Видана студенту:</td> <td><input class="w2" type="text" data-bind="value: dov_name1b" placeholder="Іванову"/> <input class="w2" type="text" data-bind="value: dov_name2b" placeholder="Івану"/> <input class="w2" type="text" data-bind="value: dov_name3b" placeholder="Івановичу"/></td> </tr> <tr> <td>Період навчання</td> <td>з <input class="w2 date" type="text" data-bind="value: dov_date_begin" placeholder="початок"/> до <input class="w2 date" type="text" data-bind="value: dov_date_end" placeholder="завершення"/></td> </tr> <tr> <td>Факультет:</td> <td><select data-bind="value: dov_faculty"> <option value=""></option> <option value="1">ФІКТ</option> <option value="2">ФОФ</option> <option value="3">ФЕМ</option> <option value="4">ГЕФ</option> <option value="5">ФІМ</option> <option value="6">ЦПО</option> </select> </td> </tr> <tr> <td>ОКР: </td> <td><select data-bind="value: dov_okr"> <option value=""></option> <option value="1">бакалавр</option> <option value="2">спеціаліст</option> <option value="3">магістр</option> </select></td> </tr> <tr> <td>Напрям/спеціальність:</td> <td><input type="text" data-bind="value: dov_spec" placeholder="шифр" class="w2"/> <input class="w6" type="text" data-bind="value: dov_spec_name" placeholder="назва" /></td> </tr> <tr> <td>Спеціалізація:</td> <td><input type="text" data-bind="value: dov_specialization" placeholder="спеціалізація" class="w6"/></td> </tr> <tr> <td>Форма навчання:</td> <td><select data-bind="value: dov_forma"> <option value=""></option> <option value="1">денна</option> <option value="2">заочна</option> </select></td> </tr> <tr> <td>Відрахований</td> <td><input type="text" placeholder="за академічну неуспішність" data-bind="value: dov_vidrah_pr"/></td> </tr> <tr> <td>За наказом №</td> <td><input class="w1" type="text" placeholder="номер" data-bind="value: dov_vidrah_nakaz"/> <input class="w2 date" type="text" placeholder="дата" data-bind="value: dov_vidrah_date"/></td> </tr> <tr> <td>Набув таких компетентностей: </td> <td><textarea class="w8 h3" data-bind="value: dov_compet">Компетентності, які відповідають вивченим дисциплінам</textarea></td> </tr> </table> <div class="subjects"> <table style="margin:0 auto;" data-bind='visible: gifts().length > 0'> <caption>Список дисциплін:</caption> <tbody data-bind='foreach: gifts'> <tr> <td><input placeholder="Назва дисципліни" type="text" class="w6" data-bind="value: pr_name"/></td> <td><input placeholder="кредитів" type="text" class="w1" data-bind="value: pr_credits"/></td> <td><input placeholder="годин" type="text" class="w1" data-bind="value: pr_hours"/></td> <td><select placeholder="оцінка" data-bind="value: pr_form"> <option value=""></option> <option value="зараховано">зараховано</option> <option value="відмінно">відмінно</option> <option value="добре">добре</option> <option value="задовільно">задовільно</option> </select> <td><input placeholder="балів" class="w1" type="text" data-bind="value: pr_points"/></td> <td><input placeholder="ЄКТС" class="w1" type="text" data-bind="value: pr_ects"/></td> <td><a href='#' data-bind='click: $root.removeGift'>Видалити</a></td> </tr>
</tbody> </table> <button data-bind='click: addGift'>Додати дисципліну</button> <button data-bind='click: generate' style="display: none;">Згенерувати документ</button> <button data-bind='click: load' style="display: none;">Завантажити</button> <div id="res" style="display: none;"> <a href="" class="download">Скачати</a> </div> <div style="text-align: center;"> <button data-bind='click: save' style="padding:10px;">Зберегти академдовідку</button> </div>
</div> </form> <div id="loadBox" style="display: none;"></div> <script type="text/javascript">
var GiftModel = function(gifts) { var self = this; self.gifts = ko.observableArray([]); self.dov_number = ko.observable(''); self.dov_name1a = ko.observable(''); self.dov_name2a = ko.observable(''); self.dov_name3a = ko.observable(''); self.dov_name1b = ko.observable(''); self.dov_name2b = ko.observable(''); self.dov_name3b = ko.observable(''); self.dov_date_begin = ko.observable(''); self.dov_date_end = ko.observable(''); self.dov_faculty = ko.observable(''); self.dov_okr = ko.observable(''); self.dov_spec = ko.observable(''); self.dov_spec_name = ko.observable(''); self.dov_forma = ko.observable(''); self.dov_vidrah_pr = ko.observable(''); self.dov_vidrah_nakaz = ko.observable(''); self.dov_vidrah_date = ko.observable(''); self.dov_compet = ko.observable(''); self.dov_gender = ko.observable(''); self.dov_specialization = ko.observable('');
self.addGift = function() { self.gifts.push({ pr_name: "", pr_hours: "", pr_credits: "", pr_form: "", pr_points: "", pr_ects: "" }); };
self.removeGift = function(gift) { self.gifts.remove(gift); };
self.save = function(form) { alert("Could now transmit to server: " + ko.utils.stringifyJson(self)); // To actually transmit to server as a regular form post, write this: ko.utils.postJson($("form")[0], self.gifts); }; self.generate = function(form) { var obj = {}; obj.gifts = self.gifts(); obj.dov_number = self.dov_number(); obj.dov_name1a = self.dov_name1a(); obj.dov_name2a = self.dov_name2a(); obj.dov_name3a = self.dov_name3a(); obj.dov_name1b = self.dov_name1b(); obj.dov_name2b = self.dov_name2b(); obj.dov_name3b = self.dov_name3b(); obj.dov_compet = self.dov_compet(); obj.dov_date_begin = self.dov_date_begin(); obj.dov_date_end = self.dov_date_end(); obj.dov_faculty = self.dov_faculty(); obj.dov_okr = self.dov_okr(); obj.dov_spec = self.dov_spec(); obj.dov_spec_name = self.dov_spec_name(); obj.dov_forma = self.dov_forma(); obj.dov_vidrah_pr = self.dov_vidrah_pr(); obj.dov_vidrah_nakaz = self.dov_vidrah_nakaz(); obj.dov_vidrah_date = self.dov_vidrah_date(); obj.dov_gender = self.dov_gender(); obj.dov_specialization = self.dov_specialization();
obj.gifts = self.gifts(); $.post('generate.php', JSON.parse(ko.toJSON(obj)), function(data) { console.log(data); $("#res").show(); $("#res a").attr('href', data.filename); }, 'json'); } self.save = function() { saveItem('№' + self.dov_number() + ' ' + self.dov_name1a() + ' ' + self.dov_name2a() + ' ' + self.dov_name3a()); } self.generateAndDownload = function() { var obj = {}; obj.gifts = self.gifts(); obj.dov_number = self.dov_number(); obj.dov_name1a = self.dov_name1a(); obj.dov_name2a = self.dov_name2a(); obj.dov_name3a = self.dov_name3a(); obj.dov_name1b = self.dov_name1b(); obj.dov_name2b = self.dov_name2b(); obj.dov_name3b = self.dov_name3b(); obj.dov_compet = self.dov_compet(); obj.dov_date_begin = self.dov_date_begin(); obj.dov_date_end = self.dov_date_end(); obj.dov_faculty = self.dov_faculty(); obj.dov_okr = self.dov_okr(); obj.dov_spec = self.dov_spec(); obj.dov_spec_name = self.dov_spec_name(); obj.dov_forma = self.dov_forma(); obj.dov_vidrah_pr = self.dov_vidrah_pr(); obj.dov_vidrah_nakaz = self.dov_vidrah_nakaz(); obj.dov_vidrah_date = self.dov_vidrah_date(); obj.dov_gender = self.dov_gender(); obj.dov_specialization = self.dov_specialization();
obj.gifts = self.gifts(); $.post('generate.php', JSON.parse(ko.toJSON(obj)), function(data) { location.href= data.filename; }, 'json'); } self.load = function() { var elem = $("#loadBox"); var list = getItems(); $('#loadBox').html(''); for(var i in list) { elem.append('<div><a href="#" onclick="return loadItemBut(this)">' + list[i] + '</a></div>'); } //saveItem('№' + self.dov_number + ' ' + self.dov_name1a + ' ' + dov_name2a + ' ' + dov_name3a); elem.show(); } }; function loadItemBut(elem) { loadItem($(elem).text()); return false; } var viewModel = new GiftModel([
]); $(document).ready(function() { $("#downloadBox a").click(function() { viewModel.generateAndDownload(); }); $("#loadBox").hover(function() { $(this).animate({'left' : '0px'}, 500); }, function() { $(this).animate({'left' : '-250px'}, 500); }) if (window.localStorage) $.datepicker.setDefaults( $.datepicker.regional[ "uk" ] ); $('.date').datepicker({ changeMonth: true, changeYear: true, dateFormat : 'yy-mm-dd' }); }); ko.applyBindings(viewModel); function loadItem(itemName) { var x = JSON.parse(localStorage.getItem(itemName)); for(var e in x) { if (x[e]) viewModel[e](x[e]); } } function saveItem(itemName) { localStorage.setItem(itemName, ko.toJSON(viewModel)); } function getItems() { var archive = []; for (var i = 0; i<localStorage.length; i++) { archive[i] = localStorage.key(i); } return archive; } loadItem('Поточний студент'); setInterval(function() { viewModel.load(); //console.log($('#form').serialize()); }, 5000); setInterval(function() { saveItem('Поточний студент'); //console.log($('#form').serialize()); }, 5000);
</script> </body> </html>
|