Много пъти разработчиците на уебсайтове трябва да събират голямо количество данни, които потребителят трябва да въведе, за това е много полезно да разделите данните по раздели или категории на различни екрани или стъпки. Начин за създаване на сесии или екрани на стъпки, всеки формуляр във всеки раздел ще изпраща въведените данни в следващия формуляр и това трябва да запазва стойностите по един начин и да ги прехвърля от една страница на друга.
За да поддържаме постоянството на данните между страниците, можем да използваме PHP сесии или временна таблица от база данни, където можем да запишем данните, които предаваме от страница на страница. И накрая запазваме събраните данни и изтриваме временната.
В този урок ще покажем как да създадете многостраничен формуляр с помощта на PHP скрипт. Ще видим и как да избегнем грешки между формулярите.
Ще използваме PHP сесии за съхраняване на стойностите на полетата на всяка форма.
След това ще създадем база данни, наречена компания, а след това таблица с кандидати.
CREATE DATABASE `company` CREATE TABLE IF NOT EXISTS` кандидати` (` id` int (10) NOT NULL, `name` varchar (255) NOT NULL,` email` varchar (255) NOT NULL, `address` varchar (50 ) DEFAULT NULL, `phone` varchar (50) DEFAULT NULL,` mobile` varchar (50) DEFAULT NULL, `education` int (11) DEFAULT NULL,` post` int (11) DEFAULT NULL, `опит` int (11) ) DEFAULT NULL, `description` text) ENGINE = InnoDB AUTO_INCREMENT = 1 КАРТЕТА ПО УМОЛЧАНЕ = latin1;Когато имаме формуляри с много данни, потребителят няма да иска да попълни формуляр с повече от 10 полета, така че е добра идея да покриете формуляра на няколко страници.
Това може да улесни потребителя да следва, например, можем да разделим данните в отделни секции, въз основа на обхвата или категориите информация, отделно лична информация, информация за клиента, вашите академични или работни данни, както и вашите вкусове или предпочитания, ние също го виждаме много при завършването на покупките преди данните за плащане в количка за пазаруване, където данните за фактуриране, данните за доставката и данните за продуктите са разделени.
Едно от предизвикателствата, които възникват при разделянето на формуляра на множество страници, е предаването на данните от една страница на друга, тъй като в крайната точка на формуляра имаме всички необходими данни, готови за обработка. Ще разгледаме два метода за това: променливите на сесията и скритите полета за въвеждане.
Следователно сесията има полу-постоянен характер, позволява ни да създадем известна постоянство и може да се използва за предаване на променливи през различни страници, в които посетителите попадат по време на посещение на сайта.
След това ще създадем първия формуляр, който ще съдържа някои полета:
PHP множествена формаЩе добавим и стиловите таблици, за да придадем по -елегантен дизайн на нашата форма, затова създаваме файл styles.css, след прилагане ще бъде както следва.Формуляр 1
Име: Имейл: Адрес: Телефон: Мобилен телефон:
div.container {width: 960px; височина: 550px; марж: 50px автоматично; } div.main {ширина: 100%; марж-топ: 35px; поплавък: ляво; бордюр: 2px solid # 8fc400; подложка: 0px 50px 20px; семейство шрифтове: Arial, Helvetica Neue, Helvetica, sans-serif; } form {margin-top: 20px} .estilotextarea {width: 100%; height: 100px; border: 1px solid # 999; } h2 {background-color: background: # 8fc400; фон: -moz-линеен градиент (отгоре, # 8fc400 0%, # 8fc400 100%); фон: -webkit-линеен градиент (отгоре, # 8fc400 0%, # 8fc400 100%); фон: линеен градиент (до долу, # 8fc400 0%, # 8fc400 100%); филтър: progid: DXImageTransform.Microsoft.gradient (startColorstr = '# 8fc400', endColorstr = '# 8fc400', GradientType = 0); подложка: 32px; марж: 0 -50px; text-align: center;} b {font-size: 18px; дисплей: блок; цвят: # 555;} етикет {цвят: # 464646; размер на шрифта: 14px; font-weight: bold;} input [type = text], input [type = email] {width: 96%; височина: 25px; подложка: 5px; margin-top: 5px; margin-bottom: 15px; } изберете {margin-bottom: 15px; margin-top: 5px; ширина: 100%; височина: 35px; font-size: 12px;} input [type = submit], input [type = reset] {padding: 10px; фон: линеен градиент ( # 058eb5 5%, # 045066 100%); бордюр: 1px твърд # 058eb5; цвят: # f7f7f7; курсор: показалец; ширина: 20%; рамка-радиус: 2px; margin-bottom: 15px; тегло на шрифта: удебелен; font-size: 16px;} input [type = submit]: hover, input [type = reset]: hover {background: linear-gradient ( # 045066 5%, # 058eb5 100%); } .message {border: 1px solid; марж: 10px 0px; подложка: 15px 10px 15px 10px; фон-повторение: без повторение; фон-позиция: 10px център; подравняване на текст: център; цвят: # 4F8A10; ширина: 100%; цвят на фона: # DFF2BF; }Добавих задължителното свойство към всяко поле, този задължителен атрибут е булев атрибут, който показва дали полето е задължително или не, вярно или невярно.
Когато е налице, той посочва, че това поле за въвеждане не може да бъде празно и трябва да бъде попълнено преди изпращане на формуляра. Изискваният атрибут работи със следните типове html5 въвеждане: текст, имейл, парола, квадратчета за отметка, радио и файл.
При попълване на данните от първия формуляр изпращаме по пощата до втория наречен формуляр form2.php чийто код е следният.
$ стойност) {$ _SESSION ['sesionform1'] [$ ключ] = $ стойност; }?> var13 -> PHP Множествена формаФормуляр 2
Образователно ниво: ---- Изберете ---- Технически университет Друга приложима позиция: * ---- Изберете ---- Администратор на сървър Програмист Проектант Работен опит: * ---- Изберете ---- Няма
След това ще изпратим до формуляр, където ще запишем данните, за този урок ще покажем данните от сесиите преди, само за да видим какви данни е изпратил всеки формуляр.
$ стойност) {$ _SESSION ['sesionform2'] [$ ключ] = $ стойност; } изхвърлен 'Данни от формуляр 1'; $ sesionform1 = $ _ SESSION ['sesionform1']; изхвърлен ''; print_r ($ sesionform1); изхвърлен ''; изхвърлен 'Form2 данни'; $ sesionform2 = $ _ SESSION ['sesionform2']; изхвърлен ''; print_r ($ sesionform2); изхвърлен ''; извличане ($ _ SESSION ['sesionform1']); $ connection = mysql_connect ("localhost", "root", ""); $ db = mysql_select_db ("компания", $ връзка); $ sql = "вмъкване в клиенти (име, имейл, адрес, телефон, мобилен телефон, образование, позиция, опит, описание)"; $ sql. = "стойности ('$ name', '$ email', '$ address', '$ phone', '$ mobile', '$ education', '$ position', '$ experience', ' $ description ') "; $ query = mysql_query ($ sql, $ връзка); ?> var13 -> PHP Множествена форма<? if ($ query) {echo 'Приключихте процеса и запазете данните
'; } else {echo 'Данните не са запазени
'; } unset ($ _ SESSION ['sesionform1']); unset ($ _ SESSION ['sesionform2']); ?> var13 ->
Така че можем да добавим необходимото количество формуляри и във всяка форма ще запишем данните в сесия и след това ще запишем всички сесии в база данни, но също така не позволява връщане към предишна форма, тъй като знаем номера на стъпката или формуляр Ние ще можем да знаем коя сесия съдържа данните на този формуляр и да възстановим данните.
Този начин за създаване на Многостраничната форма ни позволява да организираме по-добре информацията, когато трябва да съберем много данни
Множество формуляри са част от почти всяко уеб приложение днес. В големите уебсайтове с големи обеми данни те са основният метод за получаване на информация от потребителите, които използват приложението. В зависимост от последователността, която трябва да приложим от страна на клиента за логиката на приложението, не трябва да ни превишаваме с не повече от 10 полета, но потребителят се уморява и го изоставя, скриптът също трябва да има включена цялата необходима защита, тъй като ние сме използване на сесии и данните могат да бъдат прихванати.
Правилният метод за използване избягването на проблеми със сигурността е капсулиране на обработката на данни от страна на сървъра с помощта на pHp.
Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка