Hozzon létre egy kapcsolatfelvételi űrlapot a bootstrap, a php és az ajax használatával, a webhely elrendezésével

Hozzon létre egy kapcsolatfelvételi űrlapot a bootstrap, a php és az ajax használatával, a webhely elrendezésével

Az írás idején a Bootstrap 3.3.5 a keret jelenlegi verziója. Ehhez a cikkhez az alapértelmezett Bootstrap összeállítást (12 oszlopot) használjuk. A cikkben szereplő feladatok végrehajtásakor ügyeljen arra, hogy a Bootstrap dokumentációjában leírt legfrissebb kódrészleteket és kódstruktúrát használja.

A fájlok és mappák felépítése

Hozzunk létre egy gyökérkönyvtárat, és hozzáadjuk hozzá a következő fájlokat és mappákat:

Egyes front-end könyvtárakat kell csatlakoztatnunk:
  • betöltse;
  • jQuery.

Tekintettel ezekre a könyvtárakra, a fájlszerkezet így fog kinézni:

Hozzon létre egy kapcsolatfelvételi űrlapot a bootstrap, a php és az ajax használatával, a webhely elrendezésével

Formanyomtatvány létrehozása

Nyissa meg az index.html fájlt, és másolja az alábbi alapvető AJAX struktúrát a visszajelzési űrlaphoz:

Így létrejön egy elrendezés, amely a rendelkezésre álló terület felét foglalja el és vízszintesen középpontja. Ezt követően engedélyeztük a h3-at. és akkor jön a forma alapja. Győződjön meg róla, hogy az űrlapon egy azonosítót használt, hogy később csatoljon egy eseményt az AJAX JQuery űrlap elküldéséhez:

Hozzon létre egy kapcsolatfelvételi űrlapot a bootstrap, a php és az ajax használatával, a webhely elrendezésével

Harc nélkül nincs győzelem

Ezután be kell illesztenie a következő kódot a címkékbe

:

Ezek mind olyan beviteli mezők és gombok, amelyekkel a felhasználó kölcsönhatásba lép. A kezdeti div a hozzárendelt sorosztállyal a klasszikus Bootstrap szintaxis. amely a kol elemek horizontális csoportosítása. A Bootstrap belül lévő oszlopok beindítást vagy tereket hoznak létre. Eltávolítással a sztring egyenletesen illeszkedhet a tartályba.

Két oszlopot hoztunk létre a col-sm-6 osztályban (50%). amelyet az űrlap tetejének elválasztására használunk. A col-sm-6 első oszlopában létrehoztunk egy címkét és mezőket a névhez és az e-mailhez. Mindegyikük tartalmaz egy, az attribútumhoz tartozó címkét. így a címke a megfelelő mezővel társul.

Mindegyik oszlop tartalmaz egy űrlapot. amely szemantikusan csoportosítja a címkéket, és alulról kis benyomást hoz létre:

Hozzon létre egy kapcsolatfelvételi űrlapot a bootstrap, a php és az ajax használatával, a webhely elrendezésével

tipográfia

A Bootstrap lehetővé teszi a H1-H6 osztályok használatát. Segítenek meghatározni a beépített elemek stílusát anélkül, hogy hozzáadnának további mezőket, vagy létrehoznák a szuper AJAX kapcsolattartó űrlapelemeket. A H4 osztályt használtuk. A címke stílusának beállítása és nagy méretűvé tétele.

Az űrlap-kontroll osztály minden bemeneti elemhez használatos, így a konténer teljes szélességét (100% szélesség) foglalja el. Ez az osztály különböző stílusokat is tartalmaz, amelyek lehetővé teszik a könnyen olvasható űrlapelem (nagy méret, éles szélek stb.) Létrehozását.

Ezen oszlopok után az üzenet szövegét is felöleli. A formanyomtatványba csomagoljuk, és ugyanazokat a stílusokat alkalmazzuk, mint a címkékre és a szövegmezőkre.

Hívás cselekvésre

Hozzon létre egy beadási gombot. A Bootstrap különböző gombokat és állapotokat tartalmaz. Úgy döntöttünk, hogy a "siker" (btn-success) gombot használjuk, amely alapértelmezés szerint zöld.

Használnia kell a btn alapszintet is. A gomb fő paramétereinek visszaállítása (keret, behúzás, szövegbeállítás, betűméret). A btn-lg osztályt használtuk. ami egy nagy gombot hoz létre, majd húzza jobbra. amely a gomb körül levő áramlást balra állítja.

A gomb megnyomása után bevittük a divot a #msgSubmit azonosítóval és alkalmaztuk a következő osztályokat: "h3 text-center hidden". A h3 osztály segít létrehozni egy nagyobb fejlécet, a szövegcentrum a szövegbeállítást a központba állítja be, és a rejtett beállítja a megjelenítést: none and visible: rejtett:

Hozzon létre egy kapcsolatfelvételi űrlapot a bootstrap, a php és az ajax használatával, a webhely elrendezésével

Adatok funkciók hozzáadása

Megteremtettük az alap Bootstrap JQuery AJAX űrlapot. de még mindig nem csinál semmit. Következő lépésünk egy olyan funkció létrehozása, amely elfogadja a felhasználók által megadott adatokat, és aszinkron módon küldi őket a PHP-ben.

Nyissa meg a scripts.js fájlt, és másolja be a következő kódot:

Ez a jQuery kód töredéke. amely a #contactForm adatküldési funkciókat hallgatja (a korábbiaknak megfelelően). A funkció megkezdése előtt feldolgozzuk a változó eseményt. amely tárolja a függvény űrlapadatainak küldését.

Az event.preventDeafult () megszakítja az űrlapadatok küldését az oldal frissítésekor, anélkül, hogy az űrlapon egy műveletet választana. És végül, ez a kód kéri a formanyomtatvány () benyújtását; :

Ezután létrehozzuk az submitForm () függvényt; az alábbiak szerint:

Eltávolítja a rejtett osztályt a DIV #msgSubmit-ból. amelyet korábban alkalmaztunk, így megjelenítve a szöveget.

Csatlakozás a PHP Mail funkcióhoz

Most olyan szkriptet kell írni, amely az AJAX űrlapból adatokat fog kapni. és tartalmat küld a PHP Mail funkción keresztül. Nyissa meg a process.php fájlt, és adja hozzá a következő kódot:

A levél testét önkényesen hozza létre három létrehozott változó hozzáadásával. Először meg kell adnunk a leírás szövegét, például "Name:", akkor van egy változó, majd egy új vonalra (/ n). Ugyanazokat a műveleteket ismételjük meg, amelyek az összes adatot a $ body változóval társítják.

Az e-mail küldésének elindításához meg kell hívnia az if utasításban. Ily módon ellenőrizheti, hogy az űrlapadatokat sikeresen elküldték-e vagy sem. Ha a Mail funkció visszatér "true" -re, a szkript visszatér a "sikerhez", ha a függvény hibát ad vissza, akkor "érvénytelen".

Ez az eredmény vissza fog térni az AJAX objektumhoz. és a kliens oldalon dolgozták fel. Az AJAX előnye, hogy az ügyfelek oldalán aszinkron módon működik. Ez lehetővé teszi a felhasználó számára, hogy az AJAX adatformátum elküldése közben folytassa a kapcsolatot a webhelyével:

Hozzon létre egy kapcsolatfelvételi űrlapot a bootstrap, a php és az ajax használatával, a webhely elrendezésével

Hozza a ragyogást

Most arra koncentrálunk, hogy visszajelzést adjon a felhasználónak a különféle kiegészítő funkciókkal, amelyeket engedélyezhet. Különösen figyelembe vesszük a visszajelzési űrlapot hibakezeléssel, mind a kliens oldalon, mind a szerver oldalon.

Az űrlap érvényesítéséhez néhány eszközt is használunk:
  • Animate.css :;
  • Bootstrap Validator.

Adja hozzá őket a projekthez, ahogy korábban a Bootstrap és a JQuery programmal. Ezek az eszközök segítenek visszajelzést adni a felhasználónak az adatok elküldése után.

A projekt struktúrája most úgy néz ki, mint ez:

Hozzon létre egy kapcsolatfelvételi űrlapot a bootstrap, a php és az ajax használatával, a webhely elrendezésével

Form validálás

Kezdjük azzal, hogy telepítjük a validátort az AJAX PHP visszacsatolási adatainak bevitele után. Menjen a scripts.js fájlba, és módosítsa az első kódot, amely a SubmitForm () függvényt az űrlapadatok elküldése után hívja.
A következőképpen kell módosítani:

Ez az új kódrészlet ellenőrzi, hogy a Bootstrap Validator hibát észlelt-e, és hogy a kód leállt-e. Ha nem, folytatjuk a normál módban végzett műveleteket. Még mindig ki kell zárnunk az alapértelmezett műveletet (az oldal újbóli feltöltése az űrlap kitöltése nélkül) az űrlapadat-prezentációs parancsfájlból.

Most, ha a mezők kitöltése nélkül kattintunk az űrlap elküldésére, az üres mezők piros színűek lesznek:

Hozzon létre egy kapcsolatfelvételi űrlapot a bootstrap, a php és az ajax használatával, a webhely elrendezésével

A validálás hozzáadásakor blokkoltuk a HTML5 natív érvényesítését. Hozzáadhat további környezetet a hitelesítéshez a hibaüzenetek hozzáadásával. A Bootstrap Validator kényelmes funkcióval rendelkezik, amely lehetővé teszi a hibaüzenetek megjelenítését az egyes mezők számára. Hozzáadásához meg kell adnia a HTML jelölést.

Minden formanyomtatványon belül az adatbeviteli mező alatt a következő HTML kódot kell elhelyezni:

Most, amikor elküldi az AJAX JQuery űrlap adatait, hibaüzenet jelenik meg, ha az űrlapmezők nem töltődnek be: "Kérjük, töltse ki ezt a mezőt. ”. Az adatadat-attribútum hozzáadásával az "adat-hiba" nevű bemeneti adatokhoz egyéni hibaüzenet jelenhet meg.

Hozzon létre egy kapcsolatfelvételi űrlapot a bootstrap, a php és az ajax használatával, a webhely elrendezésével

Visszajelzés animáció hozzáadása

Funkciókat hozzáadtunk az üres mező mezők kijelöléséhez. De jó lenne további animációt és több üzenetet adni az űrlaphoz, amely lehetővé teszi a felhasználó számára, hogy mi történik. Jelenleg az űrlapadatok sikeres elküldésével megjelenik az "Üzenet elküldése!" Üzenet, de mi a helyzet a hibákkal?

A meglévő kód használatához megváltoztatjuk a meglévő üzenetet az adatok sikeres elküldéséről. Először törölje az "Üzenet elküldve!" Szöveget. A HTML jelölésből és hagyjon üres divot:

Most új funkciót kell létrehoznia az üzenet állapotának feldolgozásához. Add hozzá ezt a függvényt a scripts.js fájl aljához:

Ez a függvény két argumentumot tartalmaz. érvényes lesz egy logikai változó: ha az értéke igaz. egy üzenet jelenik meg a sikeres adatküldéskor. Ha hamis. egy hibaüzenet jelenik meg. msg egy üzenet, amelyet a div blokkon a képernyőn fogunk megjeleníteni.

Ez a funkció ellenőrzi, hogy a sikeres adatküldésről vagy hibaüzenetről van-e szó. Ez a változó értékének ellenőrzésével történik. Mindkét esetben a változót a megfelelő CSS-osztályokkal állítja be (újra kell engedélyezni a h3-ot és a szövegközpontot, mivel eltávolítjuk őket).

Megjegyzés: A sikeres adatküldésre vonatkozó üzenet osztályában az animate.css egyes osztályokat használjuk. Ha az AJAX JQuery kapcsolatfelvételi űrlapot sikeresen elküldtük, a onda animáció lejátszásra kerül.

Végül a függvény törli az összes osztályt a #msgSubmit-ból (a keresztező osztályok elkerülése érdekében), majd beállítja a prioritási osztályokat, és hozzáadja az üzenet szövegét a divhoz.

A validátor kezdeti szakaszán belül ezen szakasz elején frissítjük a kódot, hogy hozzáadjuk a hívást a következő függvényhez az if utasításban. ha igaznak értékeli:

Ha nem töltötte be az összes mezőt, akkor a következő hibaüzenet jelenik meg: "Kitöltötte az űrlapot megfelelően? "

Az utolsó beküldés MSG funkció utolsó lépése, ha az űrlapadatokat sikeresen elküldi. Frissítse az formSuccess () függvényt az alábbiak szerint:

Vissza szeretnénk állítani az űrlapot, és törölni kell az értékeket, amikor az submitMSG függvényt hívjuk. amint az a sikeres adatküldésről szóló üzenettel jelezte. Most, amikor az űrlapadatokat sikeresen elküldte, megjelenik egy megfelelő üzenet animate.css onda animációval:

Hozzon létre egy kapcsolatfelvételi űrlapot a bootstrap, a php és az ajax használatával, a webhely elrendezésével

Rázzuk fel

Adjuk hozzá a hiba-animációt a teljes űrlaphoz, az univerzális animáció "rázkódás" jöjjön létre!

Hozzon létre egy új fájlt közvetlenül az formSuccess () függvény után, és nevezze el a formArror () függvényt:

Ez a függvény az animate.css demo oldalán leírt megközelítést használja. amely lehetővé teszi animáció hozzáadását egy elemhez, majd újra hívja újra.

Az animáció A CSS-nek kellemetlen tulajdonsága van: a visszajátszási képesség hiánya, még akkor is, ha törli és újból hozzáadja az osztályt. Ez a funkció segít az alap animációs végosztályainak visszaállításában, amelyek lehetővé teszik, hogy újra hozzáadja őket. Amikor a felhasználó a "Küldés" gombra kattint, anélkül, hogy kitöltené a visszajelzési űrlap összes AJAX mezőjét, elveszítjük a rázkódás animációját. És ha nem tölti be újra az összes mezőt, újra meg kell játszanod ezt az animációt.

Ezt az űrlapot a (z) EMG () függvény fölött hívhatja erre az Űrlap () függvényre. amelyet a hibaüzenethez hoztunk létre. Ez például:

Most, hogy a felhasználó megpróbálja elküldeni az űrlapadatokat az összes mező kitöltése nélkül, rázza meg, hogy világossá tegye, hogy valami nincs rendben.

További érvényesítés

A kliens oldalon történő érvényesítés jó, de bármelyik felhasználó letilthatja azt, és üres mezőkkel elküldi az űrlapot a böngésző kódjának szerkesztésével. Szerveroldali érvényesítési szolgáltatást kell létrehoznia.

Meg kell nyitnunk a process.php fájlt, és meg kell hoznunk a szükséges változtatásokat annak biztosítására, hogy minden mező kitöltésre kerüljön. A $ errorMSG változót létrehozzuk. amellyel elfogjuk a hibaüzeneteket, majd engedélyezzük a $ _POST további ellenőrzését:

Ez a PHP kód ellenőrzi, hogy vannak-e üres AJAX űrlapmezők. mielőtt az adatokat megfelelő változóként állítja be (a $ _POST-ban megadott kódok által meghatározott meglévő változókat helyettesítik). Ha a mezők üresek, egy általános üzenetet adunk meg, amelyet vissza kell küldeni az ügyfélnek.

Az eredeti AJAX hívásra válaszul hibaüzenetet kell küldeni, amely megjelenik a böngészőben. Ehhez módosítsa az if utasítás. amelyet korábban a PHP kód alján hoztunk létre:

Az if utasítás segítségével ellenőrizzük, hogy a $ errorMSG változó üres-e (""). és a beépített Mail funkció állapota. amit a $ sikeres változóhoz használtunk. Az egyéb pontban engedélyeztünk egy további ellenőrzést annak megállapítására, hogy a hiba sikertelensége-e. Ha igen, visszajelzést küldünk "Valami rosszra fordult:". Ellenkező esetben egy üres mezőkre ellenőrzött üzenetet küldünk.

És az utolsó lépés az, hogy elfogadja az új üzenetet az AJAX-ban és kiadja a formában. Az AJAX objektumot a scripts.js fájlban az alábbiak szerint kell frissíteni:

Frissítettük a többi feltételeket. amely ellenőrzi a levelezés szövegét == siker. Máshol a függvény formError () függvényt hívjuk. amely az animációt "rázza", és kérje a PHP-től visszaküldött szöveges submitMSG () függvényt.

következtetés

Menj Githubba. hogy láthassa az egész kódot. Most az AJAX PHP visszajelzési űrlapja biztosítja a felhasználó számára, hogy mely mezőket nem töltötte be. Kontextuális üzeneteket adunk ki a státusz alapján és visszaadjuk a PHP üzenetből. Ezenkívül végrehajtott egy további ellenőrzési szintet a kiszolgálói oldalon azon felhasználók számára, akik megkerülik az elsődleges érvényesítést.

A Saitostroenie projekt A-tól Z-ig tartó baráti csapata készítette el a "Bootstrap kapcsolatfelvételi űrlap létrehozása a PHP és az AJAX segítségével" cikket.