Покрокова регистрация с помощта на jQuery. Robimo управлява регистрационната система с wikis PHP, MySQL и jQuery jQuery Plugin „Contactable“

В мярката TwitterМожете да тествате работата на страната с изчистен и прост дизайн. Погледнете вдясно Горна частстрана, щракнете върху бутона разрешениев системата, след като натиснете яку, ще чатите формаза запазване на данни. Днес ще ви разкажем за това как да създадете такъв ефект на добър сайт. Всъщност е доста просто. Дотогава е по-добре да спестите място отстрани и да добавите повече комфорт на гостите си. В тези статии ще ви разкажем за тези, които работят с цялата система, а останалата част от помощника ще бъде изкривена за тези, които трябва да живеят jQuery. Напред!

HTML код

През повечето време трябва да започнете с HTML кода. HTML кодът е доста прост - трябва да премахнете етикета „a“ от своя собствен, който веднага отива от тага „fieldset“, за чиято форма се показва формулярът.

Просто копирайте цената в новия страничен код:


Има акаунт? Впиши се













Забравена парола?


title="(!LANG:(!LANG:Ако си спомняте паролата си, опитайте да влезете с имейла си" !} !}
Забравихте потребителското си име?






CSS код

имате нужда CSS уикиза да посочите бутон за оторизация и да оформите вход. Изпратете кода по-долу, за да видите самата функция.

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

#контейнер (
ширина: 780px;
margin:0 auto;
позиция: относителна;
}

#съдържание(
ширина: 520px;
мин. височина:500px;
}
a:връзка, a:посетен (
цвят:#27b;
текст-декорация:няма;
}
a: задръжте курсора (
текст-украса: подчертаване;
}
изображение (
ширина на границата:0;
}
#topnav(
padding:10px 0px 12px;
размер на шрифта:11px;
line-height:23px;
текст-подравняване:вдясно;
}
#topnav a.signin (
фон:#88bbd4;
padding:4px 6px 6px;
текст-декорация:няма;
шрифт-тегло: получер;
цвят:#fff;
-webkit-border-radius: 4px;
-moz-border-radius:4px;
border-radius:4px;
*background:transparent url("images/signin-nav-bg-ie.png") no-repeat 0 0;
*Допълване:4px 12px 6px;
}
#topnav a.signin:hover (
фон:#59B;
*background:transparent url("images/signin-nav-bg-hover-ie.png") no-repeat 0 0;
*Допълване:4px 12px 6px;
}
#topnav a.signin, #topnav a.signin:hover (
*background-position:0 3px!важно;
}

a.signin(
позиция:относителна;
margin-left:3px;
}
a.signin span(
background-image:url("images/toggle_down_light.png");
background-repeat:no-repeat;
фон-позиция:100% 50%;
padding:4px 16px 6px 0;
}
#topnav a.menu-open(
фон:#ddeef6!важно;
цвят:#666!важно;
контур: няма;
}
#small_signup(
дисплей: вграден;
float:няма;
line-height:23px;
поле:25px 0 0;
ширина: 170px;
}
a.signin.menu-open span(
background-image:url("images/toggle_up_dark.png");
цвят:#789;
}

I dalі ide, предназначен да формира вход:

#signin_menu(
-moz-border-radius-topleft: 5px;
-moz-border-radius-bottomleft:5px;
-moz-border-radius-bottomright:5px;
-webkit-border-top-left-radius: 5px;
-webkit-border-bottom-left-radius: 5px;
-webkit-border-bottom-right-radius: 5px;
дисплей: няма;
цвят на фона: #ddeef6;
позиция: абсолютна;
ширина: 210px;
z-индекс:100;
граница:1px прозрачен;
подравняване на текста: ляво;
padding:12px;
отгоре: 24,5 пиксела;
вдясно: 0px;
margin-top:5px;
поле вдясно: 0px;
*margin-right: -1px;
цвят:#789;
размер на шрифта:11px;
}

#signin_menu вход, #signin_menu вход (
дисплей:блок;
-moz-border-radius:4px;
-webkit-border-radius: 4px;
граница:1px плътно #ACE;
размер на шрифта:13px;
поле:0 0 5px;
padding:5px;
ширина:203px;
}
#signin_menu p(
марж:0;
}
#signin_menu a (
цвят:#6AC;
}
#signin_menu етикет (
font-weight:normal;
}
#signin_menu стр.запомни(
padding:10px 0;
}
#signin_menu p.forgot, #signin_menu p.complete (
ясно: и двете;
поле:5px 0;
}
#signin_menu p a (
цвят:#27B!важно;
}
#signin_submit(
-moz-border-radius:4px;
-webkit-border-radius: 4px;
background:#39d url("images/bg-btn-blue.png") repeat-x scroll 0 0;
граница:1px плътно #39D;
цвят:#fff;
text-shadow:0 -1px 0 #39d;
padding:4px 10px 5px;
размер на шрифта:11px;
поле:0 5px 0 0;
шрифт-тегло: получер;
}
#signin_submit::-moz-focus-inner (
padding:0;
граница:0;
}
#signin_submit:задържане на мишката, #signin_submit:фокус (
background-position:0 -5px;
курсор:указател;
}

Време е да подобрим javascript

Щеше да бъде html кодиранеИ от CSS е лесно да се отървете, но в javascript всичко е още по-просто. Просто копирайте своя javascript код, за който прозорец ще можете да покажете формата в момента на щракване върху бутона за оторизация, като напишете същото щракване ще бъде прекъснато от формата за вход.



Започнете с кода, задръжте курсора на мишката върху, ако щракнете върху бутона за оторизация, ще се стартира нова функция. В началото се показва формулярът за вход (поставен в тага "filedset"), след това се поставя в клас ". Signin", добавяйки друг клас "menu-open", за който фоновото изображение се променя.

Друга стъпка в този код се крие във факта, че ако щракнете не върху формата за вход, а тук отстрани, тогава самата форма се затваря. С други думи, класът "menu-open" се замества от класа ".signin" и завърта фоновото изображение.

Някакъв намек?


Mi ring out работим използваме jQuery плъгин - пиян. Вместо подсказка има такива, които са записани в атрибута “title”, които ще бъдат изпратени до края. Можете да промените позицията на подсказката по всяко време, в движение, всеки ден или нощ. Реализира се за параметъра на гравитацията, посочен в кода. Бихме искали да ви изпратим съобщение до сайта, задачи към този плъгин, където можете да докладвате за способността си да получите приставката. …

Накрая

Копирахте целия код на тази статия, бъдете любезни, не променяйте структурата на папките. Ако го промените, кодът няма да работи. Tsey коде по-малко сгъване на дупето оторизация на формуляра, това, което виждате, с помощта на jQuery. Успех на практика!

1. Плъгин за създаване на онлайн формуляри "jFormer"

Създаване на контактни форми: zvorotny zv'azku, коментари, форма за вход, регистрационна форма с проверка на коректността на въведената информация

2. Формуляр за регистрация на Покроков с jQuery wikis

Кокетна форма с pokrokovym пълнежи. В долната част има индикатор за попълване на формуляра.

3. Покроков формуляр

Попълване на формуляра за клонче от глини от повторна проверка на правилността на пълнежа.

4. Форма за контакт за сайта

Повторната проверка на коректността на въведената информация се извършва „в движение“ преди коригиране на ревизиите на javascript.

5. Анимиране на jQuery между формите

Анимация за помощ на jQuery между формата за вход в сайта, регистрационната форма и полето за нулиране на паролата. От демонстрационната страна натиснете върху zhovte posilannya, schobachit ефект.

6. Формата на връзката за връщане, която можете да видите в PHP

Може да се избере подобно решение, за да се даде възможност да се свържете със сайта от всяка друга страна. От демонстрационната страна натиснете стрелката отдолу, така че формата да се люлее.

7. PHP регистрационен формуляр с jQuery и CSS3 уикита

Форма за проверка на коректността на въведената информация.

8. PHP регистрационен формуляр в стил Facebook

Хубава регистрационна форма, реализирана с помогнете на CSS, PHP и jQuery.

9. Формуляр за контакт на jQuery „SheepIt“

Реализирана е възможността за увеличаване на силата за добавяне на нови полета.

10. Изящна AJAX форма за контакт

Доста кокетна PHP форма на обратната връзка от повторна проверка на коректността на въведената информация. Технологии: CSS, PHP, jQuery.

11. Система за авторизация/регистрация в сайта

12. Форма на надмогващ данич

С повторна проверка на коректността.

13. jQuery Plugin „Възможен за връзка“

За изпълнението на формата на основна връзка, която виждате, за бърза корекция.

Писахме допълнително с някои дупета, публикувани на Habré, така че да знаете за действията на "иновативна технология" чрез добавяне на регистрационни формуляри и оторизация.

Просто формулирайте регистрация

Otzhe, kіlka priyomіv:

  • не е необходимо да се дублира въведената парола;

За да улесните живота на coristuvachev (тази работа е добре показана в този изглед на Google), по-добре е да добавите едно поле и квадратче за отметка, което означава „маска“ - всичко това се прави с помощта на малък javascript код.




1. jQuery библиотека.

2-7. инициализация на елемента.

Б. HTML код за формата на аванси:

5-6. видимостта на тези полета се превключва от квадратчето за отметка на скрипта.

Б. init.js

$(document).ready(function()( $("#testpassword1").showPassword(); $("#testpassword").showPassword(.checker", ( текст: "Кут за отметка, какво да конфигурирам), име : "showmypass")); ));

G.styles.css

Форма за тяло (семейство шрифтове: Arial, Helvetica, serif, sans-serif; ) ( поле: 15px 0; допълване: 15px; фон: #ccc; цвят: #000; граница: 1px плътен #aaa; ширина: 500px; ) form label.form ( float: left; width: 120px; display: block; ) form input#testpassword1, form input#testpassword ( float: left; display: block; ) .clear ( clear: и двете; ) div.checker ( clear : и двете; дисплей: блок; граница: 1px с точки #2d2d2d; цвят: #2d2d2d; фон: прозрачен; ширина: 230px;

  • по-добро автоматично попълване на полета въз основа на въвеждане на данни;

Колкото по-малко coristuvachev трябва да въведете, толкова по-добре. Полетата Deyakі могат да бъдат попълнени, idshtovhuyuchis отпред, вече въведени данни. Например, можете да попълните полето „местоположение“, като прочетете тези данни от полето „индекс“. Проста ajax-заявка и вдясно в capelus. AJAX уики за извличане на данни за района от пощенския код.

A. Активирайте библиотеките в ‹header›:

1. jQuery библиотека.
2. Основен сценарий.

Б. HTML код за формата на аванси:

Индекс Мисто Крайна 

1.Поле, например, въведете пощенския код.

Б. zip_city.js:

Функция fillcitystate(controlname)( var zipcode = trim(controlname.value); //отрязване if(zipcode.length!=5)( //отрязване на дължината return false; ) var zipstring = ""; xmlhttp = new XMLHttpRequest() xmlhttp.open("GET", "php/zip_city.php?zip=" + zipcode, true); // принудително изтегляне от php xmlhttp.onreadystatechange=function()( //при извличане на резултата if (xmlhttp.readyState = = 4)( var zipstring = xmlhttp.responseText; if (zipstring!="Грешка")( var ziparray = zipstring.split("|"); document.getElementById("txtCity").value = ziparray; //set стойност за полетата за място document.getElementById("txtCountry").value = ziparray; //задаване на стойност за полето на ръба ) ) ) xmlhttp.send(null); ) //проблемна функция отрязване функция trim(s) ( var l= 0; var r=s.дължина -1;докато (l< s.length && s[l] == " ") { l++; } while(r >l && s[r] == " ") ( r-=1; ) връща s.substring(l, r+1); )

G. zip_city.php: ajax манипулатор на заявки.

Require_once("db.php"); $db_table = "zip_city"; //Настройка зад заключване на стойността $returnval = "Грешка"; //премахване на GET параметъра $zipcode = $_GET["zip"]; //рестартирайте if (strlen($zipcode)>5)( $zipcode = substr($zipcode, 0, 5); ) if (strlen($zipcode)!=5)( die ($returnval); ) //изтрийте стойност от базата данни $query = "SELECT * FROM ($db_table) WHERE zip="($zipcode)""; $resultval = mysql_query($query) or die("Не може да се изпълни query:Query: ".$query."".mysql_error($conn)); $rowcount = mysql_num_rows($resultval); if ($rowcount==1)( $row = mysql_fetch_array($resultval); $returnval = $row["zip"]."|".ucwords(strtolower($row["city"]))."|" $row["държава"];

D.db.php:Конфигурация на DB връзка.

//Параметри за свързване към базата данни $dbhost = "localhost"; $dbusername="root"; $dbpass=""; $db_name = "вход в блог"; $conn = mysql_connect($dbhost, $dbusername, $dbpass) или die("Не може да се свърже със сървъра на базата данни MySQL:".mysql_error()); $db = mysql_select_db($db_name, $conn) или die("Не може да се отвори база данни:".mysql_error($conn));

E. Създаване на таблица на база данни:

СЪЗДАЙТЕ ТАБЛИЦА, АКО НЕ СЪЩЕСТВУВА `zip_city` (`id` int(11) NOT NULL AUTO_INCREMENT, `zip` varchar(5) NOT NULL, `city` varchar(255) NOT NULL, `country` varchar(255) NOT NULL, ПЪРВИЧЕН КЛЮЧ (`id`)) ENGINE=InnoDB НАБОР ПО ПОДРАЗБИРАНЕ=utf8 AUTO_INCREMENT=41921;

  • можете да добавите автоматично подаване към полето за въвеждане;

Полетата deyakі са разрешени да задават стойностите, които да бъдат въведени. Например, един koristuvach може да въведе два знака, да направи списък с държави, сякаш те са базирани на qi букви и можете лесно да изберете това, което ви трябва. Дотогава вината определено няма да простят името на отечеството. Автоматично довършване на AJAX с jQuery.

A. Включено в ‹заглавка›:

1. jQuery библиотека.
2. Скрипт за автоматично попълване за jQuery.
3. Основен сценарий.

Б. HTML код за формата на аванси:

Крайна 

1. Поле, в яка е необходимо да се rozpochinati въведете името на страната.

B. init.js:

Var опции, a; jQuery(function()( options = ( serviceUrl:"./php/autocomplete.php" ); /*посочете адреса на diff файла*/ a = $("#query").autocomplete(options); /* приемем обект за автоматично довършване с id="query"*/ ));

G. autocomplete.php: ajax-компютър

If(isset($_GET["query"]) && (!empty($_GET["query"])))( require_once("db.php"); $db_table = "system_countries"; //имена на таблици в базата данни $ query = $_GET["query"]; // получаване на полета на формуляр $variants = ""; $q = "ИЗБЕРЕТЕ `name_en` ОТ `($db_table)` КЪДЕ `name_en` REGEXP "^($query)(. * )" GROUP BY `name_en`"; /*прескочи за първите въведени знаци*/ $res = mysql_query($q) или die("Не може да се изпълни query:Query: ".$q."".mysql_error($conn) ); опции*/ ) $variants = implode(",",$варианти); /*въвеждаме всички опции чрез някой в ​​ред*/ /*формираме предложение*/ $request = "( заявка:"".$query."", предложения:[".$варианти."] )" ; echo $request; ))

E. Създаване на таблици на база данни:

ИЗПУСКАНЕ ТАБЛИЦА, АКО СЪЩЕСТВУВА `system_countries`; СЪЗДАВАНЕ НА ТАБЛИЦА `system_countries` (`id` int(11) NOT NULL auto_increment, `name_en` char(128) NOT NULL, `name_en` char(128) по подразбиране NULL, `code` char(2) NOT NULL, `_order` int(3) по подразбиране "0", `независимо` tinyint(1) по подразбиране "1", ПЪРВИЧЕН КЛЮЧ (`id`)) ENGINE=MyISAM НАБОР ПО ПОДРАЗБИРАНЕ=utf8;

G. styles.css:

Autocomplete-w1 ( background:url(/autocomplete/img/shadow.png) без повторение долу вдясно; позиция: абсолютна; отгоре:0px; вляво:0px; margin:8px 0 0 6px; /* Поправка на IE6: */ _background:none; _margin:0; ) .autocomplete ( border:1px solid #999; background:#FFF; cursor:default; text-align:left; max-height:350px; overflow:auto; margin:-6px 6px 6px -6px; /* Специфичен за IE6: */ _height:350px; _margin:0; _overflow-x:hidden; ) .autocomplete .selected ( background:#F0F0F0; ) .autocomplete div ( padding:2px 5px; weight:normal; color:#3399FF;

  • искате ли да въведете вашите dvіchі данни?

В bagatioh інтернет магазини vikoristovuyut bagatokrokovі форма zamovlennya z полета адреса на плащане за доставка. Повечето от техните значения се избягват. Защо не разпространявате coristuvachev с едно щракване, за да дублирате стойностите на въвеждането на полета? Програмно методът е прост и можете да спрете йога в различни ситуации, където можете да избегнете повторението на смисъла.

A. Включено в ‹заглавка›:

1. jQuery библиотека.

2.jQuery Изберете Plugin

3. Основен скрипт.

Б. HTML код за обидни форми:

име: Обадете се: Електронна поща: Краина:
Копирайте данните за доставка
име: Обадете се: Електронна поща: Краина:

Данни за плащане.

14. Копиране.

B. init.js:

//когато страната е активирана $(document).ready(function() ( //ако квадратчето за отметка е активирано или деактивирано $("#copyaddress").click(function() ( // ако е активирано if ($ ("#copyaddress") ) .is(":checked")) ( //за полето за въвеждане на кожата $("#shipping_fields input", ":visible", document.body).each(function(i) ( // копирайте стойността от полетата за плащане / / за полетата за доставка по подразбиране $(this).val($("#billing_fields input").eq(i).val()); ));//не работи с падащи менюта, това ще изисква функцията на приставката var bcountry = $ ( "#bcountry").val(); $("#scountry").selectOptions(bcountry); ) else ( //това квадратче за отметка е деактивирано //за полето за въвеждане на кожата $("#shipping_fields input", ":visible" , document.body).each(function(i) ( //изчистване на полетата с данни за доставка $(this).val(""); )); $("#scountry ").selectOptions(""); ) ) ) ;));

  • Тук хората са уморени да четат captcha :)

Aje вие и себе си, песенно, набридло да четете неразпознаваеми знаци от captchas и след това да ги въведете. Да се ​​смилим за ползвателите, но с които не можем да пропуснем роботите. За когото може да се стигне до редица подходи, нека да разгледаме един от тях. Pіdkhіd Honeypot Captcha - създаваме поле във формата, невидимо за ядрото, но видимо за бота. След като сме разбрали погрешно значенията, можем да клеветим неспамърите, които не са спасени, като същевременно не създаваме сгъваеми думи за правилните хора. Добавяне на captcha към процента на конверсия.

A. HTML код за формата на аванси:

аз съм prizvische електронна поща

Б. добавете обиден js:

Проверка на функцията() ( if(document.form_find.body.value)( console.log("ВНИМАНИЕ!!! БОТ НА СТРАНИЦА!!!"); ) )

Просто формулирайте разрешение

Процесът на упълномощаване - образно привидно, ако човек е "здрав" от сайта. През средновековието, в прилични кабини, те се рееха с поклони и реверанси като багатора. И да вървим в крак с часа и да работим така, че само едно топло махване с ръка да е достатъчно за къпането. Нека просто влезем в сайта.

  • Zalishaemo koristuvach отстрани, de vin влезли;

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

A. Активирайте библиотеките в ‹header›:

3. Основен сценарий.

Б. HTML код за формата на аванси:

За оторизация въведете потребителско име: вход и парола: парола

4. Бутон за отваряне на формуляра.

7-22. Самата форма.

19. Квадрат за отметка, който zmushuє задаване на бисквитки за дълго време.

23. Място за напомняния.

Б. jqeasy.dropdown.js:

$(document).ready(function() ( /*главна функция*/ $(".btnsignin").click(function(e) ( /*когато щракнете върху бутона "Запазване"*/ e.preventDefault() ; $ ) ("#frmsignin"). toggle("fast",function() ( /*превключване на видимостта на формуляра*/ $("#username").focus(); /*преместване на курсора за въвеждане в полето за вход*/ ) ); $ (this).toggleClass("btnsigninon"); /*превключване на класа върху бутоните, за да промените изгледа*/ $("#msg").empty(); )); $(".btnsignin").( return невярно;)); *не на един от обектите на формуляра*/ $(".btnsignin").removeClass("btnsigninon"); /*преоформете и завъртете като було*/ $("#frmsignin"). ; )); ( /*сега е ОК*/ $("#frmsignin").text("Влезли сте!"); /*засилване на текстовите известия*/ $("#frmsignin").delay (800).fadeOut(400); $("#signbtn").html("Вход"); /*променете бутона за излизане*/ ) else ( $("#msg").html(data); $("#username").focus() ; ) ) )); )); функция валидиране(formData, jqForm, опции) ( /* процедура за валидиране на въвеждане на данни, извличане на процеса на показване на помилване */ var form = jqForm; var un = $.trim(form.username.value); var pw = $.trim( form .password.value), var unReg = /^(3,20)$/; var pwReg = /^(6,20)$/; var hasError = false; var errmsg = ""; = " Въведете вход:

"; hasError = true; ) else if(!unReg.test(un)) ( errmsg = " Входът е виновен за до 3 - 20 знака (az, 0-9, _). "; hasError = true; ) ако (! pw) ( errmsg += "Въведете парола "; , #, $, %, &, *, (,), _)."; hasError = вярно; ) if (!hasError) ( $("#msg").html(" ask... "); else ( $("#msg").html(errmsg); върне false; ) )

D. dropdown.php:

If(($_POST["username"]=="login") && ($_POST["password"]=="password"))( echo "OK"; )else( echo "Невалидно влизане или парола"; )

D.style.css:

Body( padding:20px; font:12px Verdana, Geneva, sans-serif; color:#333; ) #container (ширина:700px; /*margin:0 auto;*/ padding:13px 10px; граница:1px плътно #999 ; ) a.btnsignin, a.btnsignout ( background:#999; padding:5px 8px; color:#fff; text-decoration:none; font-weight:bold; -radius:4px; border-radius:4px; ) a .btnsignin:hover, a.btnsignout:hover ( background:#666; ) a.btnsigninon ( background:#ccc!important; none; ) #frmsignin ( display:none; background-color:#ccc; position:absolute; top : 89px; ширина:215px; padding:12px; -radius:5px;-moz-border-radius-topleft:0;-webkit-border-radius:5px;-webkit-border-top-left-radius:0; граница -radius:5px; radius:0; z-index:100; ) #frmsignin input, #frmsignin input ( display:block; -moz-border-radius:4px; -webkit-border-radius:4px; плътно #666; margin:0 0 5px; padding:5px; width:203px; ) #frmsignin p ( margin:0; ) #frmsignin label (font-weight:normal; ) #submitbtn ( -moz-border-radius:4px; -webkit- радиус на границата: 4 пиксела; радиус на границата: 4 пиксела; backgrou nd-цвят:#333; граница:1px плътно #fff; цвят:#fff; padding:5px 8px; поле:0 5px 0 0; #000; курсор:указател; ) .submit ( padding-top:5px; ) #msg (цвет:#F00; ) #msg img ( margin-bottom:-3px; ) #msg p ( margin:5px 0; ) # msg p:last-child ( margin-bottom:0px; ) h1( margin:0 auto; )

Модално, той концентрира цялото уважение и в същото време ви позволява да поставите върху формата Допълнителна информацияописание на чи.

A. Активирайте библиотеките в ‹header›:

4. Основен сценарий.

6. Основни стилове.

7. Основни стилове за модален прозорец.

Б. HTML код за формата на аванси:

напусни специален кабинет