Създаване на сайт с Dreamweaver MX 2004, PHP и MySQL , Урок 2.4

Ще създадем форма, за изтриване на статии от Вашия blog и база данни. За да избегнеме случайно изтриване, операцията по изтриване, не се извършва директно в списъка със статии (list_art.php). Вместо това, страницата list_art.php се свързва(link) със определената статия в страницата delete_art.php. Страницата delete_art.php, показва селектираната статия и прави запитване, дали потвърждавате желанието си да изтриете тази статия. Страницата показва и два бутона, за да Ви позволи избор между изтриване и отмяна на изтриването. Ако операцията по изтриване е успешна, изскача потвърждаващо съобщение на същата страница.


Изтриване на статия

Отворете страницата delete_art.php и приложете върху нея admintemplate
В полето Title от лентата Document, въведете Blog: Delete Article , като име на страницата
Създайте recordset с име rsDeletedArticle , съдържащ избраната статия от таблицата blg_article_art. URL параметъра id_art, определя ID на статията.
В редактируемия регион на страницата напишете следния ред:
Are you sure you want to delete this article?:

След като въведете текста натиснете клавиша Enter
Използвайки rsDeletedArticle recordset, вмъкнете динамична таблица за да покажете статията за изтриване
Използвайте следните стъпки за да форматирате динамичната таблица:
Селектирайте динамичната таблица, като кликнете съответния таг от таг селектора. За width на таблицата, задайте 100% в Property inspector.
Селектирайте от таблицата колоните id_art и idtop_art и ги изтрийте. Можете да селектирате колоните, като кликнете в таблицата, след това кликнете сочещата надолу стрелка, намираща се над всяка от колоните и от появилото се меню изберете selecting column. След това натиснете клавиша Del от клавиатурата Ви. Ако не виждате стрелки на колоните, проверете дали сте активирали визуалния помощник (View > Visual Aids > Table Widths).
Изтрийте първия ред от таблицата.
Селектирайте останалия ред и с дясно кликване на мишката изберете Table > Insert Row от появилото се меню.
Селектирайте левите две клетки от горния ред и ги слейте, като натиснете бутона Merge в Property inspector.
Селектирайте десните две клетки от горния ред и ги слейте, като натиснете бутона Merge в Property inspector.
Селектирайте динамичния текст {rsDeletedArticle.title_art}и го издърпайте в лявата таблична клетка на горния ред .
Селектирайте динамичния текст {rsDeletedArticle.date_art} и го издърпайте в дясната таблична клетка на горния ред .
Напишете Published: вляво от динамичния текст {rsDeletedArticle.date_art}
Селектирайте втория ред и изберете Modify > Table > Insert Row. Повторете това, за да вмъкнете още един ред.
Селектирайте всички клетки от втория ред и ги слейте.
Издърпайте динамичното текстово поле rsDeletedArticle.description_art на втория ред.
Слейте клетките на третия ред.
Издърпайте динамичното текстово поле rsDeletedArticle.text_art на третия ред.
Слейте клетките на четвъртия ред.
Селектирайте горния ред от таблицата , кликнете с десен бутон върху тага
от таг селектора и изберете Set Class > topheader.
Селектирайте втория ред, кликнете с десен бутон върху тага

от таг селектора и изберете Set Class > topic.
Селектирайте третия ред, кликнете с десен бутон върху тага
от таг селектора и изберете Set Class > topbody.
Приложете save на страницата.
Страницата би трябвало да изглежда като на фиг.26



фиг.26 Страницата за изтриване на статии в Design view

Поставете файла delete_art.php на Вашия сървър и браузвайте до страницата list_art.php. Кликнете бутона delete за една от Вашите статии и проверете дали е показана коректната статия на страницата delete_art.php. Ако не получите коректния запис от базата данни, проверете дали URL параметъра, който подавате от страницата list_art.php , отговаря на URL параметъра, който очаква rsDeletedArticle recordset.

Сега трябва да създадете бутоните за потвърждаване или отмяна на операцията delete. Понеже всеки бутон представлява различно действие, ще ги вмъкнете в отделни форми.

В четвъртия ред от таблицата, вмъкнете нова таблица, която има 1 ред и 2 колони
Във всяка от клетките вмъкнете форма, като натиснете бутона Form от таба Forms на лентата Insert.
Във всяка от формите вмъкнете бутон от таба Forms на лентата Insert.
Селектирайте първата форма, като кликнете в нея и изберете
от таг селектора. Въведете delete, като нейно име в Property inspector. Действието на формата, ще бъде представено на същата страница, така че въведете delete_art.php в полето Action.
Селектирайте втората форма и въведете cancel като нейно име в Property inspector. Формата Ви пренасочва към списъка със статии, така че въведете list_art.php в полето Action .
Селектирайте бутона в delete формата и задайте свойствата му в Property inspector:
Button name: yes
Label: Yes
По подобен начин направете настройки и за бутона cancel:
Button name: no
Label: No.
Формата, потвърждаваща изтриването, трябва да извика страницата delete_art.php, която изпълнява Delete Record server behavior. За да направи това, трябва да подаде уникалния ID на статията за изтриване, като променлива на формата. Подавате тази стойност като скрито поле( hidden field). Използвайте следните стъпки за да направите това:

Във формата с label: delete, вмъкнете hidden field (Insert bar > Forms panel > Hidden Field button).
Селектирайте скритото поле и за label напишете id_art в Property inspector.
В Property inspector, задайте стойност на скритото поле, като кликнете иконата със "светкавица" и селектирате полето id_art от rsDeletedArticle recordset, както е показано на фиг.27 .

фиг.27 Селектиране на полето id_art от диалог.прозорец Dynamic Data

Кликнете Ok. Проверете, дали скритото поле е конфигурирано правилно, като сравните резултата Ви с този от фиг.28.



фиг.28. Стойността на hidden field

Формата, която създадохте би трябвало да изглежда като на фиг.29



фиг.29. Формата в Design view

Следва да създадете истинската транзакция по изтриването

Кликнете бутона Delete Record от таба Application на лентата Insert, както е показано на фиг.30


фиг.30. Бутона Delete Record от таба Application на лентата Insert

Конфигурирайте появилия се прозорец, както следва и проверете Вашите стойности с тези от фиг.31
Server behavior-a първо проверява дали бутона Yes е бил натиснат, така че задайте за първото падащо меню Form variable и въведете yes в текстовото поле до менюто.
Connection: connBlog.
Статията се изтрива от таблицата blg_article_art
Задайте числовото primary key поле на таблицата за статиите: id_art.
За да изтрие действително запис от базата данни, приложението сравнява стойността на primary key със стойността, изпратена чрез скритото поле (hidden field) id_art, на формата за изтриване. Ето защо, селектирайте Form Variable от падащото меню Primary Key value и въведете id_art в текстовото поле до менюто.
Накрая, след като е извършено изтриването, Вие оставате на същата страница, където се показва съобщение, потвърждаващо изтриването (ще го добавите по-късно). Ето защо, въведете delete_art.php в текстовото поле After deleting, go to.


фиг.31. Диалог.прозорец Delete Record

Кликнете Ok, когато сте готови.
Server behavior-а се появява в панела Application

На същата страница, под таблицата, напишете следното потвърждаващо съобщение, което ще се появи, когато операцията по изтриването е успешна:
You have successfully deleted the article.

Под съобщението, вмъкнете форма с име back, пренасочваща Ви до списъка със статии (Action: list_art.php). Във формата вмъкнете бутон с име Back.
Фигура 32 показва, как трябва да изглежда страницата Ви, през погледа на браузъра Ви.



фиг.32. Формата за изтриване във браузъра

Както можете да видите, на тази страница има проблем. Тя показва потвърждаващото съобщение и въпроса по едно и също време. Трябва да проконтролирате, коя секция да се показва преди изтриването и коя да се показва след изтриването. В Dreamweaver, това можете да постигнете, като използвате conditional regions. Това е сървър поведение ( server behaviors ), позволяващо Ви да показвате или да скривате секции от страницата, базиращо се на резултатите върнати от recordset-а.

В този случай, можете да покажете първата секция - въпроса - ако статията не е била изтрита вече, означаващо дали rsDeletedArticle recordset не е празен. Само когато статията е била изтрита - когато recordset-а става празен - страницата ще показва потвърждаващото съобщение. Използвайте следните стъпки, за да създадете два conditional региона осъществяващи тези действия.

Селектирайте първата секция на страницата, включваща въпроса, статията и двата бутона.
Отидете до таба Server Behaviors от панела Application и кликнете (+) бутона.
От появилото се меню, изберете Show Region > Show If Recordset Is Not Empty, както е показано на фиг.33


фиг.33.Server Behavior: Show If Recordset Is Not Empty

В диалог.прозорец Show If Recordset Is Not Empty, селектирайте rsDeletedArticle recordset. Това е recordset-а, който server behavior проверява, за да види дали не е празен.

фиг.34. Диалог.прозорец Show If Recordset Is Not Empty

Кликнете Ok. Ще видите тънка сива рамка с име Show If, заграждаща conditional региона. Повторете стъпките от 1 до 5, за втората секция от страницата. Обаче, този път изберете Show Region If Recordset Is Empty. Фиг.35 показва, как ще изглежда втория регион в Design view

фиг.35. Show If региона в Design view

Направете save на Вашата страница и я ъплоудвайте на сървъра. Тествайте в браузъра. Опитайте да въведете, някаква "шашава" статия в admin/index.php. После я изтрийте.

Завършване на админ. секцията на blog-a

Сега ще приложите наученото.

Стартирайте с построяване на списък с темите, както беше описано в секцията за управление на статиите

Вие трябва да:

Отворете list_top.php, приложете админ. темплейта и задайте заглавие на страницата Blog: Topics.
Създайте recordset с име rsAdminTopics включващ всички теми от базата данни.
Добавете динамична таблица, за да изобразите списъка с темите.
Форматирайте таблицата.
Добавете колона към таблицата и вмъкнете update.gif бутона и отправете линк от него към съответната страница (update_top.php). Подайте на update_top.php уникалния ID на темата, като URL параметър (id_top от rsAdminTopics recordset).
Вмъкнете линк към страницата за създаване на тема (insert_top.php).
Приложете подходящи CSS стилове към таблицата.
Фиг.36 показва, как изглежда списъка с темите в браузъра.


фиг.36 ..хм

След това, използвайте упътванията направени в часта, свързана с публикуване на статии в blog-a, за да построите страницата insert_top.php за добавяне на статии. За да направите това, трябва да създадете форма за вмъкване на записи в таблицата за темите (blg_topic_top). Страницата за добавяне на теми трябва да е подобна на фиг.37


фиг.37. Страницата за добавяне на теми, през дзъркелите на браузъра

Накрая се консултирайте с часта за модифициране на статии, за да използвате стъпките за създаване на страница за модифициране на теми. За да направите това Ви е нужно:

Отворете страницата update_top.php, приложете темплейт и задайте името Blog: Modify Topic.
Създайте recordset с името rsModifiedTopic от (blg_topic_top). Записа е филтриран според уникалния ID на темата (id_top) получен чрез URL параметъра id_top от list_top.php.
Създайте форма за ъпдейт на записа, за модифициране на селектираната тема
Фигура 38 показва, как изглежда страницата за ъпдейт на темите в окото на браузъра



фиг.38 ... да

Когато работите върху динамичния сайт, Dreamweaver автоматично генерира някои PHP скриптове, които са разположени в папката _mmServerScripts, във Вашата root папка. Сериозно Ви препоръчваме, да изтриете тази папка, преди да предоставите сайта си на хост сървъра. Тези скриптове, съдържат чувствителна информация за Вашия сайт, която не трябва да попада в недобронамерени потребители.

Продължава в Урок 3.0



/ Трябва да сте регистриран за да напишете коментар /