![]()
В этой статье мы продолжаем создание web редактора. Этот редактор позволяет создавать/изменять/удалять записи списка. Напомню, что мы уже разобрали структуру приложения, создали его главную страницу и научились создавать новые записи. Сейчас мы переходим к редактированию записей.
Примечание. Вы можете посмотреть демонстрационную версию редактора или скачать архив с файлами проекта.
Возможность редактирования записей в списке – это, наверное, главное преимущество данного приложения. Обеспечивается она с помощью встраиваемого редактора, входящего в состав библиотеки Scriptaculous. Создание и настройку этих редакторов мы рассмотрели в статье (Как сделать редактор списка в стиле Web 2.0 (главная страница)). Напомню, что на данный момент редакторы для каждой записи в списке находятся в массиве editors.
Теперь разберем, как работает редактор. При нажатии на кнопку «Сохранить» выполняется Ajax запрос к скрипту updateitem.php.
Работа этого скрипта практически полностью аналогична additem.php, рассмотренному в предыдущей части.
require_once("dbdata.php");
$v = null;
$id = null;
$v = $_POST['value'];
$id = $_POST['id'];
if (($v != null) && ($v != "") && ($id != null) && ($id != "") ) {
$v = htmlspecialchars($v);
//обновляем запись в БД
$con = connect();
$updateQuery = sprintf("UPDATE listitems SET item='%s' WHERE id=%d",
mysql_real_escape_string($v),
mysql_real_escape_string($id));
if (mysql_query($updateQuery)) {
echo $v;
return;
}
else {
$results['error_mes'] = "Не могу обновить запись: ".mysql_error();
}
}
else {
$results['error_mes'] = 'Не задано значение записи';
}
if ($con != null) {
mysql_close($con);
}
echo json_encode($results);
Разница заключается в том, что скрипт не создает новую запись, а обновляет существующую (строка 11). Для этого ему передается параметр id, указывающий, какую именно запись необходимо изменить.
Кроме того, при успешном выполнении скрипта, мы возвращаем полученную строку, не преобразуя ее в формат json (это требование библиотеки).
Нажатие на ссылку «Отмена» не приводит к отправке запроса, а просто убирает форму с редактором и возвращает список в исходное состояние.
Как видите, эта часть приложения довольно простая. В основном, за счет использования библиотеки Scriptaculous. По большому счету, мы только создали редактор (этот этап описан во второй статье этого цикла) и написали серверный скрипт, выполняющий обновление записи в БД. Весь JavaScript код, выполняющий вставку формы, отправку запроса, обновление и т.п. предоставляется библиотекой.
В следующей статье мы рассмотрим удаление записей списка.
Интересно почитать
Деревянный дом — действительно комфортное жилье.


