Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Кухаренко В В.doc
Скачиваний:
6
Добавлен:
04.05.2019
Размер:
3.49 Mб
Скачать

2.3.3 Файл обработчик. Внесение изменений в базу

После выполнения формы в файл обработчик отправляются переменные содержащие информацию из полей формы. На основе этих переменных и будут вноситься изменения в базу.

Для выполнения этих операций надо создать файл, я назвал его obrabotchik.php. Создать его надо на основе дизайна сайта, т.е. скопировав какой-нибудь файл. В блоке Main ничего сложного выводится, не будет, кроме извещения об успешности выполнения действий или об ошибке. Для начала надо подключить файл содержащий подключение к базе. Дальше надо осуществить прием переменных от формы. Так как переменные передаются методом _POST, их можно использовать как массив с именем пост, это будет называться прямой передачей переменных, но не все хостинги поддерживают такой способ. Поэтому лучше подстраховаться и занести переменные из массива в обычные переменные. Для этого понадобиться сделать проверку на их наличие. Здесь понадобится функция IF ELSE, это функция проверки, если условие выполняется, то происходит одно, если нет – другое. В проверке задействованы еще две функции, это isset(); - проверяет на наличие переменной, и unset(); удаляет переменную. Работает скрипт по принципу, если есть переменная в массиве, то создать обычную переменную и занести туда переменную из массива, если нет, то удалить эту переменную. Скрипт проверки будет выглядеть так:

Рис. 2.20 Проверка на наличие переменных, занесение их в обычные переменные

Для занесения информации в базу понадобится еще один скрипт с проверкой IF ELSE. В блоке main открываем блок кода PHP, и прописываем проверку на наличие переменных необходимых для внесения информации в базу. Если условие выполняется прописываем функцию mysql_query();, с параметром UPDATE, дальше указываем таблицу в которую надо внести изменения и сами изменения, в виде title=’$title’, аналогично для других полей. И указываем условие WHERE id=$id что бы изменения занеслись в нужное поле. Результат работы функции помещается в переменную $result.

Далее прописываем проверку на успешность выполнения операции, снова применяем проверку IF ELSE. В условии проверяем: если содержимое переменной $result положительно (‘true’), то выводить сообщение об успешном занесении информации, если ложь, то выводить сообщении о провале операции. А если не выполнилось самое первое условие, то выводить сообщение, что не все поля заполнены. У меня скрипт выглядит так:

Рис. 2.21 Внесение изменений в базу

2.3.4 Навигация в админке. Синхронизация работы

Ссылки на изменение страниц можно поместить в свободный правый контейнер в блоке администратора. Называем блок в правом контейнере «Редактирование» И помещаем туда ссылки с именами существующих страниц сайта, все ссылки будут ссылаться на файл form_edit.php на котором расположена форма вывода. А для того чтобы форма знала какую именно запись выводить, ссылка будет передавать этому файлу переменную id методом _GET. Этот метод передачи переменных осуществляется через строку браузера, т.е. переменная прописывается в ссылке а ее передачу можно наблюдать в строке браузера, вот пример:

Рис. 2.22 Передача с переменной с навигации

К ссылкам прописывается id в соответствии с полем id из записи, в которой содержится нужная страница. Эта переменная отправляется файлу form_edit.php, там она участвует в условии выбора данных из базы.

Рис. 2.23 Переменная как условие для выборки

И из этого файла эта переменная отправляется обработчику, через форму. Т.е. сначала она помещается в скрытое поле, а при нажатии на кнопку вместе со всеми переменными отправляется в файл obrabotchik.php.

Рис. 2.24 Передача переменной в скрытом поле

В обработчике эта переменная так же участвует в условии, сообщая функции, куда занести изменения.

Рис. 2.25 Переменная как условия для внесения изменений в базу

Благодаря этой переменной процесс внесения редактирования данных синхронизируется, и данные изменяются там, где нужно.