Реализация вывода списка рассмотрена в предыдущем примере. Единственное, что здесь добавляется – это вывод кнопок для пользователя «администратор». Для этого можно использовать следующего вида форму, имеющую уникальное имя для каждой записи:
<form name=\"f$array[id]\" action=\"$action?page=$_GET[page]\" method=\"post\" >
<input type=\"image\" title='Вверх' src='../images/up.gif' onclick= 'document.f$array[id].button.value=\"up\";'><input type=\"image\" title='Вниз' src='../images/down.gif' onclick= 'document.f$array[id].button.value =\"down\";'>
<input type=\"image\" src='../images/refresh.gif' title = 'Редактировать' onclick= 'document.f$array[id].button.value =\"edit\";'>
<input type=\"image\" src='../images/del.gif' title='Удалить' onclick='if (confirm(\"Удалить уровень из системы?\")) document.f$array[id].button.value=\"delqw\";else return false;'><br>
<?/*передаем в скрытых полях идентификатор записи в таблице и название нажатой кнопки*/?>
<input type='hidden' name='idqw' value='$array[id]'>
<input type='hidden' name='button' value='change' >
</form.
Добавление нового элемента в список реализуется так:
function add($idqw,$tbl){// выводим форму для добавления
global $action_add_msg;
|
|
$action_msg=$action_add_msg; $button="save_add";
include "form.html";
}
function save_add($idqw,$tbl){// добавляем в БД
global $err_duplicate_msg;
$query = "SELECT id FROM $tbl WHERE name='$_POST[name]'";
$result = MYSQL_QUERY($query);
IF (MYSQL_NUMROWS($result)==0){//элемента нет, добавляем
/*увеличиваем порядковый номер элементов, следующих за добавляемым*/
$query="UPDATE $tbl SET ord=ord+1 WHERE ord>=$_POST[ord] and id_category=$_POST[id_category]";
$result=mysql_query($query) or die(mysql_error());
$query = "INSERT INTO $tbl (name, ord, activity,id_category,date) VALUES('$_POST[name]', '$_POST[ord]', $_POST[activity], '$_POST[id_category]', NOW())";
$result = MYSQL_QUERY($query);
}
else { echo $err_duplicate_msg;
$array=$_POST;
$button=$_POST['button'];
include "form.html";
}
}
Шаблон формы для добавления/редактирование (хранится в файле form.html).
Редактирование элемента списка осуществляется так:
function edit($id,$tbl){// выводим форму для редактирования
global $action_edit_msg;
$action_msg=$action_edit_msg;// название подписи формы
$button="save_edit"; // название подписи конпки
$query="SELECT id,name,ord,activity,id_category FROM $tbl WHERE id=$id";
$result=mysql_query($query) or die(mysql_error());
$array = mysql_fetch_array($result, MYSQL_ASSOC);
include "form.html";
}
function save_edit($id,$tbl){ //сохраняем изменения в БД
global $err_duplicate_msg;
$query = "SELECT id FROM $tbl WHERE name='$_POST[name]'";
$result = MYSQL_QUERY($query);
IF((MYSQL_NUMROWS($result)==0)||(mysql_result($result, 0,'id') == $idqw)){// если такого названия нет у других, то изменяем
$query = "UPDATE $tbl SET name='$_POST[name]', ord='$_POST[ord]',activity=$_POST[activity],id_category='$_POST[id_category]' WHERE id=$idqw";
$result = MYSQL_QUERY($query);
}
else { echo $err_duplicate_msg;
$array=$_POST; $button=$_POST['button'];
include "form.html";
}}
Удаление элемента из списка выполняется так:
function delqw($idqw, $tbl){ //удалить элемент из БД
//определяем порядковый номер элемента