-
Notifications
You must be signed in to change notification settings - Fork 0
/
subjects.php
357 lines (308 loc) · 17.4 KB
/
subjects.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
<?php
//let the party begin!
require 'dbconnection.php';
require 'constants.php';
require 'functions.php';
//functions
cancel_button();
//если нажали "Добавить" на модальной форме
if (isset($_POST['add_button']))
{
//профильтруем название дисциплины
$new_subject = mysql_real_escape_string(htmlspecialchars(trim($_POST['new_subject'])));
//если в итоге это не пустой ввод
while (1)
{// как будто продолжать бесконечно
//если после фильтрования выяснилось, что пользователь оплошал и натыкал нам пробелы или вообще просто нажал "добвавить", то
if ($new_subject == '')
{
$sew = true; //sew = subject empty warning
break; //если пустота, то расходимся.
}
//проверим наличие вводимой дисциплины:
//qs = query string
$qs = 'SELECT COUNT(*) FROM `subjects` WHERE `subject`=\'' . $new_subject . '\'';
//qr = query row
$qr = mysql_query($qs);
//tr = temporary row
$tr = mysql_fetch_row($qr);
//если есть такая дисцплина, то
if ($tr[0] == '1')
{
$sdw = true; //subject duplicate warning
break; // продолжать бесконечно не получится, ибо... ну надо же как-то выйти из цикла. Тем более причина есть.
}
//если выше проверки прошли успешно, то
//формируем запрос sql на добавление
$add_new_subject_query = 'INSERT INTO `subjects` (`id`, `subject`) VALUES (NULL,\'' . $new_subject . '\')';
$add_new_subject_result = mysql_query($add_new_subject_query);
//$sdw=false;//ПРОВЕРИТЬ ! нужно ли?
//$sew=false;
//далее спорная команда отправить себя самого к себе самому же
header('Location: /subjects.php');
break;
}
}
//УДАЛЕНИЕ
if(isset($_POST['delete']))
{
;
}
?>
<!--
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
HTML
-->
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<link href="css/bootstrap/css/bootstrap.css" rel="stylesheet" type="text/css">
<link href="css/mycss.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="js/jquery-1.9.1.js"></script>
<script type="text/javascript" src="css/bootstrap/js/bootstrap.js"></script>
<script type="text/javascript">
function checkAll(obj) {
'use strict';
// Получаем NodeList дочерних элементов input формы:
var items = obj.form.getElementsByTagName("input"),
len, i;
// Здесь, увы цикл по элементам формы:
for (i = 0, len = items.length; i < len; i += 1) {
// Если текущий элемент является чекбоксом...
if (items.item(i).type && items.item(i).type === "checkbox") {
// Дальше логика простая: если checkbox "Выбрать всё" - отмечен
if (obj.checked) {
// Отмечаем все чекбоксы...
items.item(i).checked = true;
} else {
// Иначе снимаем отметки со всех чекбоксов:
items.item(i).checked = false;
}
}
}
}
</script>
<!-- если у нас проблемный IE-- >
<!--[if lt IE 9]>
<script src="js/html5.js"></script>
<![endif]-->
<title>Дисциплины - <?php echo PRODUCT_NAME; ?></title>
</head>
<body>
<?php
df();
//если не удалось соединиться с базой данных, то выведет на красном баре ошибку
if (isset($dbce))
{//db connection error
die('<div align="center" class="well well-small alert-error">' . PRODUCT_NAME . ': ' . $dbce . '</div></body></html>');
}
?>
<div class="well well-small">
<h5>
<?php
echo_product_name() //выведет константу, задающую название всей системы или просто желаемую надпись
?>
</h5>
</div>
<div class="well well-small">
<?php whoareyou($_COOKIE['my_cookie']); ?>
</div>
<div class="container-fluid">
<div class="row-fluid">
<div class="span2">
<!--Sidebar content-->
<?php left_menu(); ?>
</div>
<div class="span10">
<!-- <form action -->
<!-- <form action -->
<!-- <form action -->
<!-- <form action -->
<!-- <form action -->
<!-- <form action -->
<form action="subjects.php" method="post" name="subjects_form">
<?php
//если под таблицей нажали УДАЛИТЬ
if(isset($_POST['delete']))
{
//нужно выяснить, какие именно записи отмечены
//подготовим данные (вытащим из $_POST checkboxX, где X == ID):
$tmparray = array_keys($_POST);
for ($i = 0; $i < count($tmparray); ++$i)
{
//если перебираемый ключ указывает нам на ячейку с 'checkbox', то
if (substr($tmparray[$i], 0, 8) == 'checkbox')
{
mysql_query("DELETE FROM `subjects` WHERE `subjects`.`id` = ".substr_replace($tmparray[$i], '', 0, 8)." LIMIT 1");
}
}
unset($tmparray);
header("Location: subjects.php");
}
//если под таблицей нажали АКТИВИРОВАТЬ+
if(isset($_POST['activate']))
{
//нужно выяснить, какие именно записи отмечены
//подготовим данные (вытащим из $_POST checkboxX, где X == ID):
$tmparray = array_keys($_POST);
for ($i = 0; $i < count($tmparray); ++$i)
{
//если перебираемый ключ указывает нам на ячейку с 'checkbox', то
if (substr($tmparray[$i], 0, 8) == 'checkbox')
{
mysql_query("UPDATE `subjects` SET `active` = '1' WHERE `subjects`.`id` =".substr_replace($tmparray[$i], '', 0, 8));
}
}
unset($tmparray);
header("Location: subjects.php");
}
//если под таблицей нажали ДЕАКТИВИРОВАТЬ+
if(isset($_POST['deactivate']))
{
//нужно выяснить, какие именно записи отмечены
//подготовим данные (вытащим из $_POST checkboxX, где X == ID):
$tmparray = array_keys($_POST);
for ($i = 0; $i < count($tmparray); ++$i)
{
//если перебираемый ключ указывает нам на ячейку с 'checkbox', то
if (substr($tmparray[$i], 0, 8) == 'checkbox')
{
mysql_query("UPDATE `subjects` SET `active` = '0' WHERE `subjects`.`id` =".substr_replace($tmparray[$i], '', 0, 8));
}
}
unset($tmparray);
header("Location: subjects.php");
}
//если нажали "Добавить" на странице+
if(isset($_POST['add_new_subject_button']))//+
{
$addnews='Добавление новой дисциплины';//+
$addarray=array();
$addarray[0][0]='Дисциплина';
$addarray[0][1]='<input type="text" name="new_subject" >';
$addarray[0][2]='';
$add = 'add';//+
show_modal_form($addnews, $addarray, $add,''); //при формировании страницы покажем модальную форму редактирования
}
//если нажали "..."(редактировать) на странице+
if(isset($_POST['edit_flag']) and !isset($_POST['add_new_subject_button']) and !isset($_POST['delete']) and !isset($_POST['activate']) and !isset($_POST['deactivate']))//+
{
//подготовим данные (вытащим из $_POST x-key-editX, где X == ID):
$tmparray = array_keys($_POST); //array_keys — Возвращает все или некоторое подмножество ключей массива
// print_r($tmparray);
//найдем ключ ячейки x-key-editX:
for ($i = 0; $i < count($tmparray); ++$i)
{
//если перебираемый ключ указывает нам на ячейку с 'x-key-edit', то
if (substr($tmparray[$i], 0, 10) == 'x-key-edit')
{
//то данный ключ $i даст нам x-key-editX:
$id_row = substr_replace($tmparray[$i], '', 0, 10); //"вытащили" из строки ID записи
break; //прекратить перебор массива
}
//header("Location: subjects.php");
}
//подготовим данные:
//qs = query string
$qs = 'SELECT * FROM `subjects` WHERE `ID`=\'' . $id_row . '\'';
//qr = query row
$qr = mysql_query($qs);
//tr = temporary row
$tr = mysql_fetch_row($qr); //массив со всей строкой по ячейкам
print_r($tr);
$editarray = array();//id,activity,subject
$editarray[0][0]='Дисциплина';
$editarray[0][1]='<input type="text" name="new_subject" value="'.$tr[2].'">';
$editarray[0][2]='';
$editarray[1][0]='Активность';
if($tr[1])
$editarray[1][1]='<input type="checkbox" name="subject_activity" checked>';
else
$editarray[1][1]='<input type="checkbox" name="subject_activity">';
$editarray[1][2]='';
$title1='Редактирование дисциплины';//+
$update = 'update';//+
show_modal_form($title1, $editarray, $update); //при формировании страницы покажем модальную форму редактирования;
}
?>
<!-- кнопка добавить новую дисциплину-->
<input type="submit" name="add_new_subject_button" class="btn btn-primary" value="Добавить новую дисциплину">
<!-- бывшее место закрытия form. теперь тут br-->
<br />
<br />
<table border="0" cellpadding="2" cellspacing="2" align="center" class="table table-hover">
<?php
$table_header_footer = '
<tr class="success">
<td>
<input type="checkbox" name="all_on_page" onclick="checkAll(this)"> Все
</td>
<td>
ID
</td>
<td>
Дисциплина
</td>
<td>
Редактировать
</td>
</tr>';
echo $table_header_footer;
?>
<?php
// формирование таблицы
$rowsperpage = 30;
//сколько всего записей?
$rowcount = mysql_result(mysql_query('SELECT COUNT(*) FROM `subjects`'), 0);
$result = mysql_query("SELECT * FROM `subjects` WHERE 1 LIMIT $rowsperpage");
if (!$result)
die('Error:' . mysql_error());
else
tablebodygenerator($result);
echo $table_header_footer;
?>
<tr class="success">
<td colspan="5">
<span style="margin: 5px 5px 0 0; float:left">Выделенные</span>
<input class="btn btn-warning" type="submit" name="delete" value="Удалить" onclick="if(confirm('Желаете удалить выбранные записи?')) ; else return false; ">
<!-- <input class="btn btn-success" type="submit" name="activate" value="Активировать">
<input class="btn btn-inverse" type="submit" name="deactivate" value="Деактивировать">-->
</td>
</tr>
</table>
<div style="float:left; margin-left: 0;">
<span style="margin: 5px 2px 0 0; float:left">Всего записей: <?php echo $rowcount;?></span>
<span style="margin: 5px 2px 0 20px; float:left">Показать на странице:</span>
<select class="input-small" name="rows_per_page">
<option>30</option>
<option>100</option>
<option>200</option>
<option>500</option>
<option>Все</option>
</select>
</div>
<span style="margin: 5px 4px 0 20px; float:left">Страница</span>
<div class="pagination">
<ul>
<li><a href="#">Предыдущая</a></li>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">Следующая</a></li>
</ul>
</div>
</form>
</div>
</div>
</div>
<?php footer(); ?>
</body>
</html>