หน้าต่าง Modal พร้อมแบบฟอร์มสำหรับส่งจดหมาย แบบฟอร์มการติดต่อง่ายๆ โดยใช้ Ajax ฉันทำทุกอย่างตามคำแนะนำแล้ว แต่แบบฟอร์มใช้งานไม่ได้ ฉันควรค้นหาข้อผิดพลาดที่ไหน
สวัสดีผู้อ่านที่รัก! ในบทช่วยสอนนี้ ฉันจะแสดงวิธีที่เราสามารถสร้างแบบฟอร์มสมัครสมาชิกอีเมล HTML5 พร้อมการตรวจสอบอีเมลโดยใช้ JQuery เราจะใช้นิพจน์ทั่วไปในการตรวจสอบ และเราจะบันทึกที่อยู่ที่ป้อนไว้ในฐานข้อมูล MySql ดังนั้น เมื่อทำการบันทึก จะใช้ AJAX (เช่น เราจะเรียกสคริปต์ PHP โดยไม่ต้องโหลดหน้าซ้ำ) สามารถดูผลลัพธ์ได้ในหน้าสาธิต และคุณยังสามารถดาวน์โหลดซอร์สโค้ดได้อีกด้วย มาเริ่มกันเลย!
มาร์กอัปพื้นฐานเริ่มต้นด้วยการสร้างไฟล์ index.html ใหม่ และเราจะสร้างโครงสร้างเอกสารอย่างง่ายที่ยึดตาม HTML5 เราจะเชื่อมต่อสไตล์ CSS และไลบรารีทันที เราจะต้องใช้เมื่อตรวจสอบอีเมลที่ป้อน:
1 |
|
ตอนนี้คุณพร้อมที่จะสร้างแบบฟอร์มแล้ว!
แบบฟอร์มสมัครสมาชิกทางอีเมลวัตถุประสงค์ของแบบฟอร์มของเราคือเพื่อตรวจสอบที่อยู่อีเมลที่ผู้เยี่ยมชมป้อนและบันทึกลงในรายชื่อสมาชิก ในการทำเช่นนี้ เราสร้างแบบฟอร์มปกติด้วยปุ่มโดยคลิกที่ที่อยู่ที่จะประมวลผลและบันทึกในฐานข้อมูลหรือในไฟล์ตามที่สะดวก ในบทนี้เราจะดูการบันทึกข้อมูลลงฐานข้อมูล จะชัดเจนยิ่งขึ้นเราจะเน้นการตรวจสอบความถูกต้องของที่อยู่ที่ป้อน นี่คือลักษณะของแบบฟอร์มสมัครสมาชิก:
1 |
สมัครสมาชิก |
มาล้อมแบบฟอร์มใน #completeform div block เพื่อที่ว่าหลังจากบันทึกที่อยู่แล้ว แบบฟอร์มก็จะยุบได้
นอกจากนี้เรายังใช้คุณลักษณะใหม่สองสามรายการในช่องป้อนข้อมูล ประเภทฟิลด์ถูกตั้งค่าเป็น "อีเมล" เพื่อให้เบราว์เซอร์มือถือสามารถแสดงแป้นพิมพ์ที่เหมาะสมได้ Chrome และเบราว์เซอร์ WebKit บางตัวจะใช้สิ่งนี้เพื่อตรวจสอบว่าผู้ใช้ป้อนที่อยู่หรือไม่ แอตทริบิวต์การแก้ไขอัตโนมัติและตัวพิมพ์ใหญ่อัตโนมัติได้รับการออกแบบมาโดยเฉพาะสำหรับเบราว์เซอร์มือถือ
ช่วงที่มีข้อผิดพลาด id จะถูกซ่อนไว้ในตอนแรก ซึ่งคุณสมบัติการแสดงผลที่มีค่า none รับผิดชอบ เราได้เขียนสิ่งนี้ไว้ในไฟล์สไตล์ และจะเพิ่มเติมในภายหลัง แต่ทันทีที่ผู้ใช้ป้อนที่อยู่อีเมลไม่ถูกต้องในช่วงนั้น ข้อความเตือนก็จะปรากฏขึ้น
เครื่องมือตรวจสอบ jQuery และคำขอ AJAXเริ่มต้นด้วยคุณลักษณะการยืนยันที่อยู่อีเมลแบบง่ายๆ เราใช้สตริงนิพจน์ทั่วไปเพื่อตรวจสอบว่าสตริงข้อความตรงกับไวยากรณ์อีเมลมาตรฐานหรือไม่ จากนั้นจะส่งกลับค่าบูลีนจริง มิฉะนั้นจะส่งกลับค่าเท็จ
มาดูฟังก์ชัน completeInviteForm() กัน เพื่อป้องกันไม่ให้แบบฟอร์มการป้อนที่อยู่เกิดความสับสน เราจะใช้เอฟเฟกต์ fadeOut เป็นเวลา 400 มิลลิวินาที และเพื่อเป็นการโทรกลับ ให้เรียกใช้ฟังก์ชัน $.ajax() ใช้เพื่อเรียกไฟล์ save.php และบันทึกที่อยู่ที่ป้อนลงในฐานข้อมูล ฉันจะให้ซอร์สโค้ดของไฟล์ save.php ด้านล่างนี้ แต่ตอนนี้เรามาดูฟังก์ชัน $.ajax() กันดีกว่า
$.ajax - โหลดเพจระยะไกลโดยใช้คำขอ HTTP ฟังก์ชัน $.ajax() ถูกส่งผ่านวัตถุที่ประกอบด้วยคู่คีย์/ค่าที่ใช้ในการเริ่มต้นและจัดการคำขอ ในกรณีของเรา เราจะใช้วัตถุต่อไปนี้:
- type:'POST' - เลือกประเภทของคำขอไปยังไฟล์ โดยค่าเริ่มต้น GET ความแตกต่างระหว่าง POST และ GET นั้นไม่ได้ใหญ่มาก เพียงแต่ด้วยคำขอ GET ข้อมูลจะถูกส่งไปที่ส่วนหัวและด้วย POST ในส่วนเนื้อหา ของคำขอ ดังนั้นการใช้ POST คุณสามารถส่งข้อมูลจำนวนมากขึ้นได้
- url:’save.php’ — เส้นทางไปยังไฟล์ปฏิบัติการ
- data:’email=’+$(“#email”).val() - ข้อมูลที่ถูกส่งไปยังเซิร์ฟเวอร์ การใช้ตัวเลือก CSS #email เราเข้าถึงองค์ประกอบด้วย id="email" และรับเนื้อหาของแอตทริบิวต์ value นั่นคืออีเมลที่ผู้ใช้ป้อน และเราจะกำหนดเนื้อหานี้ให้กับตัวแปรอีเมล ซึ่งเราจะใช้ในไฟล์ save.php
- ความสำเร็จ: function())( $('#completeform').before('Everything is ready! You have been added to the mailing list.');) - ฟังก์ชัน Success จะถูกเรียกเมื่อคำขอ ajax เสร็จสมบูรณ์ ฟังก์ชันดำเนินการดังต่อไปนี้ ก่อน #completeform div เราจะแทรกเนื้อหาเพื่อแจ้งให้ผู้ใช้ทราบว่าอีเมลของเขาถูกเพิ่มลงในรายชื่ออีเมลแล้ว
1 | ฟังก์ชั่น completeInviteForm() ( |
และการใช้วิธีการ setTimeout การซ่อนแบบฟอร์มและการดำเนินการคำขอ ajax จะเกิดขึ้นแบบอะซิงโครนัสโดยมีความล่าช้า 1100 มิลลิวินาที
การประมวลผลแบบฟอร์มเพื่อให้เข้าถึงองค์ประกอบของหน้าได้ง่ายขึ้น มาสร้างตัวแปรสองสามตัวด้วยตัวเลือก #error และ #btnwrap
var erdiv = $("#ข้อผิดพลาด" ) ; |
เมื่อใช้ตัวจัดการเหตุการณ์สด เราจะติดตามการคลิกปุ่ม “สมัครสมาชิก” ด้วย id=”sendbtn” วิธีการ e.preventDefault();
ยกเลิกพฤติกรรมมาตรฐานของเบราว์เซอร์ในการดำเนินการ (คลิกปุ่ม) กล่าวคือ ยกเลิกการรีเฟรชหน้าและเปลี่ยน URL เรากำหนดอีเมลที่ป้อนให้กับตัวแปร emailval และเราสามารถเริ่มประมวลผลตัวแปรนี้ได้
วิธีแรก if(!isEmail(emailval)) ตรวจสอบว่าฟังก์ชัน isEmail ส่งกลับค่าเท็จหรือไม่ ซึ่งหมายความว่าที่อยู่อีเมลที่ผู้ใช้ป้อนไม่ตรงกับนิพจน์ทั่วไป กล่าวคือ ไม่ถูกต้อง เราจะแจ้งให้ผู้ใช้ทราบเกี่ยวกับสิ่งนี้ในบล็อกข้อผิดพลาด และแสดงข้อความ (คุณไม่ได้ป้อนที่อยู่อีเมลของคุณอย่างถูกต้อง)
ตอนนี้อันที่สอง if จะถูกดำเนินการหากผู้ใช้ป้อนที่อยู่อีเมลที่ถูกต้องเท่านั้น จากนั้นเราก็สามารถเริ่มกระบวนการบันทึกที่อยู่ได้
1 | เพื่อให้กระบวนการชัดเจน ให้แทรกข้อความที่เหมาะสมลงในบล็อกข้อผิดพลาด และวางภาพ GIF ลงในบล็อกที่มีปุ่ม "สมัครสมาชิก" และเราเรียกฟังก์ชัน completeInviteForm() ซึ่งเราได้กล่าวถึงข้างต้น |
ฐานข้อมูล
เนื่องจากฉันเลือกวิธีการบันทึกที่อยู่ที่ป้อนลงในฐานข้อมูล ฉันจะพูดสั้น ๆ เกี่ยวกับการสร้างฐานข้อมูลและตารางเอง รวมถึงโค้ดของไฟล์ save.php ซึ่งทำงานร่วมกับฐานข้อมูล MySql ตามที่สัญญาไว้
สำหรับสิ่งนี้ เราจะต้องมีเซิร์ฟเวอร์ภายในเครื่อง ฉันใช้ Denwer แน่นอนว่ามีคนใช้มันเยอะมาก ดังนั้นฉันจะไม่ลงรายละเอียด ไปที่ phpMyAdmin และสร้างฐานข้อมูลอีเมล:
ในการจัดเก็บที่อยู่ของสมาชิก เราจำเป็นต้องมีหนึ่งตารางที่มีสองฟิลด์ เรียกว่าที่อยู่ :
- ฟิลด์จะเป็นดังนี้:
- id — ตัวระบุที่อยู่อีเมล (หรือที่เรียกว่าคีย์หลัก)
ไฟล์ save.php
1 |
|
ขั้นแรก เราจะตรวจสอบว่ามีตัวแปรอีเมลอยู่ในอาร์เรย์ POST ส่วนกลางหรือไม่ หากเป็นเช่นนั้น เราจะกำหนดค่าให้กับตัวแปรในเครื่อง $email ต่อไป เราจะสร้างการเชื่อมต่อกับเซิร์ฟเวอร์ mysql_connect() รูทผู้ใช้ โดยไม่มีรหัสผ่าน เราเลือกฐานข้อมูลอีเมลและดำเนินการค้นหาในฐานข้อมูล แทรกบันทึกใหม่ลงในตารางที่อยู่ โดยที่ค่าของตัวแปร $email จะถูกแทรกลงในช่องที่อยู่ แค่นั้นแหละ!
นี่เป็นการสรุปบทเรียน ฉันอยากจะเตือนคุณว่าการสมัครสมาชิกนี้ใช้งานได้บนเซิร์ฟเวอร์เท่านั้น (เนื่องจากเราใช้ฐานข้อมูล และ )
สวัสดีทุกคน. เราถูกโจมตีด้วยคำถามเกี่ยวกับวิธีการใช้แบบฟอร์มที่ปรากฏในหน้าต่างโมดอลหลังจากคลิกปุ่ม และหลังจากส่งแล้ว ข้อความเกี่ยวกับความสำเร็จหรือความล้มเหลวจะปรากฏขึ้น
ฉันคิดว่ามีสิ่งที่คล้ายกันมากมายบนอินเทอร์เน็ต แต่เนื่องจากมีคนถาม ฉันจึงตัดสินใจทำ นอกจากนี้ ฟังก์ชันดังกล่าวจะต้องมีอยู่ในเกือบทุกหน้า Landing Page เพื่อใช้งานปุ่มโทรกลับ และแน่นอนว่า ขณะนี้มีผลการทดสอบ AB มากขึ้นเรื่อยๆ ซึ่งแสดงให้เห็นว่ารูปแบบที่เปิดทำงานได้แย่กว่ารูปแบบที่ซ่อนอยู่ในหน้าต่างโมดอลและเปิดขึ้นหลังจากคลิกปุ่ม
บางคนแย้งว่านี่เป็นเพราะความจริงที่ว่าผู้คนกำลัง "พัฒนาภูมิคุ้มกัน" อย่างช้าๆ และรูปแบบเปิดคือการขายเชิงรุก ตอนนี้เป็นเวลาที่ผู้ใช้เมื่อเห็นแบบฟอร์มเปิด เชื่อว่าพวกเขากำลังพยายาม "ขาย" บางอย่างให้เขา ฉันไม่เห็นด้วยกับทฤษฎีนี้โดยสิ้นเชิง แต่มีความจริงอยู่บ้าง สิ่งนี้อาจเป็นจริงในธุรกิจบางประเภท ทีนี้มาดูการใช้แบบฟอร์มกันดีกว่า
บันทึก! ฉันจะไม่อธิบายแต่ละการกระทำโดยละเอียด แต่เสนอเวอร์ชันสำเร็จรูปให้คุณในซอร์สโค้ด หากคุณมีคำถามใด ๆ เขียนในความคิดเห็น เราจะคิดออก :)
วันนี้เราจะไม่เริ่มต้นด้วย jQuery แต่ด้วยเค้าโครงของปุ่มและแบบฟอร์ม เราจะรวมสคริปต์ทั้งหมดไว้ท้ายหน้า
ปุ่มที่เมื่อคลิกแล้วจะเปิดหน้าต่างโมดอล:
ฝากคำขอไว้
คุณสามารถตั้งค่าคลาสใดก็ได้ แต่ใน href เขียน #modal - นี่จะเป็นรหัสของคอนเทนเนอร์ที่มีการแรเงาและแบบฟอร์มการติดต่อ
ตอนนี้ฉันจะให้รหัสสำหรับแบบฟอร์มและบล็อกที่จะวางแบบฟอร์ม:
ทิ้งรายละเอียดการติดต่อของคุณไว้ แล้วที่ปรึกษาของเราจะติดต่อคุณ ฉันต้องการแบบฟอร์มนี้สำหรับเว็บไซต์ของฉัน
หลังจากเพิ่มสไตล์แล้ว หน้าตาจะเป็นดังนี้:
ในการสร้างหน้าต่างโมดอล ไลบรารี Remodal ถูกนำมาใช้ นี่คือชุดของไฟล์ css และ js สำหรับสร้างหน้าต่างโมดอลแบบเคลื่อนไหวเท่านั้น คุณสามารถดาวน์โหลดได้จากลิงก์หรือด้วยการแก้ไขของฉันในตอนท้ายของบทความ
เราเพิ่มสไตล์ระหว่างแท็ก head:
และก่อนแท็กปิดเนื้อหา ให้เพิ่มสคริปต์:
Script.js เป็นสคริปต์สำหรับประมวลผลแบบฟอร์ม Ajax เดียวกับที่ช่วยให้เราดำเนินการตามขั้นตอนทั้งหมดโดยไม่ต้องโหลดหน้าซ้ำ:
$(document).ready(function () ( $("form").submit(function () ( // Get the form ID var formID = $(this).attr("id"); // เพิ่มแฮช ไปที่ชื่อ ID var formNm = $("#" + formID); $.ajax(( ประเภท: "POST", url: "mail.php", ข้อมูล: formNm.serialize(), ความสำเร็จ: ฟังก์ชั่น (data) ( // ข้อความเอาต์พุตของผลลัพธ์การส่ง $(formNm).html(data); error: function (jqXHR, text, error) ( // การแสดงข้อความของข้อผิดพลาดในการส่ง $(formNm).html(error); ) ) ); ));
ฉันจะไม่ระบุซอร์สโค้ดของ css และ js จากไฟล์ที่รับผิดชอบหน้าต่างและฟอร์มโมดอล เนื่องจากมีขนาดค่อนข้างใหญ่ ถ้าเป็นเช่นนั้นให้ดูที่แหล่งที่มา แต่ตัวจัดการ PHP นั้นเป็นมาตรฐานส่วนใหญ่ (ถ้าฉันพูดอย่างนั้น):
โปรดอย่าลืมเปลี่ยนที่อยู่อีเมลของคุณเป็นของคุณเอง
นี่คือฟอร์มของอาแจ็กซ์ที่เราได้รับ ขออภัยที่ไม่ได้พยายามอธิบายรายละเอียดว่าแต่ละองค์ประกอบถูกสร้างขึ้นมาอย่างไร ฉันแค่อยากจะให้ผลลัพธ์ที่เสร็จสิ้น แต่ก็ไม่มีประโยชน์ที่จะอธิบายแอนิเมชั่นและรูปลักษณ์ทั้งหมด ดาวน์โหลดซอร์สและนำไปใช้บนเว็บไซต์ของคุณ และนั่นคือทั้งหมดสำหรับวันนี้ ขอให้ทุกคนโชคดี!
เพื่อนๆ ฉันขอแนะนำให้คุณทดสอบแบบฟอร์มบนเซิร์ฟเวอร์จริงหรือเสมือน (โฮสติ้ง) โปรดตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ของคุณรองรับ PHP คุณมีแผนแบบชำระเงินและไม่ใช่ช่วงทดลองใช้งาน มิฉะนั้น 90% ของกรณีแบบฟอร์มจะไม่ทำงาน
อย่าคาดหวังจดหมายในกล่องจดหมายของคุณหากคุณเพิ่งเปิดไฟล์ดัชนีในเบราว์เซอร์แล้วคลิกปุ่ม "ส่ง" PHP เป็นภาษาฝั่งเซิร์ฟเวอร์!
หากคุณขี้เกียจเกินไปที่จะเข้าใจและสร้างแบบฟอร์มด้วยตัวเองฉันขอแนะนำให้ใส่ใจ
มีบทความเวอร์ชันอัปเดตอยู่
เราทุกคนคุ้นเคยกับการดูข้อมูลติดต่อในหน้าแยกต่างหากที่สร้างขึ้นเป็นพิเศษเพื่อรับคำติชมจากผู้ใช้ ตามกฎแล้ว ในหน้าดังกล่าว นอกเหนือจากแบบฟอร์มการติดต่อแล้ว พวกเขายังโพสต์ข้อมูลอื่น ๆ อีกมากมายสำหรับการโต้ตอบและการสื่อสาร กลไกนี้เป็นที่ยอมรับ ผ่านการทดสอบมาหลายปีและทำงานได้อย่างสมบูรณ์แบบ แต่ในบางกรณี จำเป็นต้องแสดงแบบฟอร์มการติดต่อแยกต่างหากเป็นหน้าต่างป๊อปอัปโดยไม่เปลี่ยนเส้นทางผู้ใช้ไปยังหน้าอื่น
ครั้งหนึ่งเราเคยดูสิ่งที่ขับเคลื่อนโดย jQuery วันนี้ ฉันอยากจะแนะนำให้คุณรู้จักกับโซลูชันที่น่าสนใจสำหรับการสร้างแบบฟอร์มติดต่อแบบป๊อปอัปที่ออกแบบแต่เดิมและแยกต่างหากสำหรับไซต์
ในความคิดของฉัน นี่เป็นตัวอย่างที่ยอดเยี่ยมของเครื่องมือโต้ตอบกับผู้ใช้
เราดูตัวอย่าง ตอนนี้ เรามาแบ่งแบบฟอร์มนี้ออกเป็นส่วนประกอบต่างๆ ตั้งแต่การสร้างโครงสร้างโดยรวมใน Html ไปจนถึงการสร้างรูปลักษณ์ของเลย์เอาต์โดยใช้ CSS
รหัส HTML ของแบบฟอร์มไม่มีอะไรพิเศษ เป็นเฟรมเวิร์กที่ง่ายที่สุดที่เป็นไปได้ของแบบฟอร์มการติดต่อปกติ วางอยู่ในองค์ประกอบ div บล็อกที่มีตัวระบุและคลาสเฉพาะ เพื่อกำหนดลักษณะที่ปรากฏของแบบฟอร์มใน css และโต้ตอบกับจาวาสคริปต์เล็กน้อย ซึ่งเราจะต้องเปิดใช้งานและ ปิดแบบฟอร์มป๊อปอัป
ปิดส่งข้อความถึงเรา |
ปิดส่งข้อความถึงเรา กรุณากรอกข้อความของคุณที่นี่..
นอกจากนี้เรายังต้องสร้างเลเยอร์ที่เข้มขึ้นสำหรับพื้นหลังทั่วไปเมื่อเปิดใช้งานแบบฟอร์มป๊อปอัป งานนี้สามารถทำได้หลายวิธี แต่เราจะไม่ฉลาดเกินไป และจะเพิ่ม div อื่น โดยกำหนดตัวระบุ: id="fade" และ class: class="black-overlay" คุณสามารถวางไว้ข้างแบบฟอร์มเพื่อจะได้ไม่ต้องค้นหาเป็นเวลานานหากจำเป็น
ข้อเสนอแนะ
คุณอาจสังเกตเห็นว่าปุ่มปิดถูกจารึกไว้ในบล็อกแบบฟอร์มการติดต่อ ทันทีก่อนส่วนหัวและนี่คือตรรกะ แต่ที่อื่นที่ควรจะเป็น ปุ่มควรปรากฏขึ้นและหายไปพร้อมกับแบบฟอร์ม เราจะสร้างลักษณะและตำแหน่งของปุ่มปิดใน CSS ในภายหลัง
เพียงเท่านี้ มาดูโค้ด HTML แบบเต็มของหน้าเว็บที่มีแบบฟอร์มแสดงความคิดเห็นแบบป๊อปอัป:
แบบฟอร์มการติดต่อแบบป๊อปอัปปิดส่งข้อความถึงเรา กรุณากรอกข้อความของคุณที่นี่.. |
แบบฟอร์มการติดต่อแบบป๊อปอัปปิดส่งข้อความถึงเรา กรุณากรอกข้อความของคุณที่นี่..
ก่อนที่เราจะไปยังส่วนที่สนุกสนานในการกำหนดรูปแบบการติดต่อของเราโดยใช้ CSS ฉันจะย้อนอดีตเล็กน้อย คนที่เอาใจใส่มากที่สุดอาจสังเกตเห็นว่าปุ่มสำหรับเปิดและปิดแบบฟอร์มนั้นถูกนำมาใช้ในรูปแบบของลิงก์ที่มี “jammer” href="javascript:void(0)" . ไม่ว่าจะดีหรือไม่ดี ฉันไม่เคยพบคำตอบที่แน่นอนสำหรับตัวเองเลย ฉันใช้วิธีนี้จนเป็นนิสัย แม้ว่าสำหรับองค์ประกอบที่สคริปต์ประมวลผลเหตุการณ์ onclick ฉันคิดว่าการใช้ หรือ มีเหตุผลและถูกต้องมากกว่า หากต้องการ คุณสามารถทำได้โดยใช้ปุ่มจากตัวอย่างนี้
ความมหัศจรรย์ของ CSSแบบฟอร์มตอบรับนี้จัดทำขึ้นในรูปแบบดั้งเดิม โดยมีการปรับแต่งการออกแบบบางอย่าง ดังนั้นตัวเลือกเค้าโครงที่ใช้มาตรฐาน CSS3 ที่ทันสมัยโดยเฉพาะจึงค่อนข้างมีปัญหา
พื้นฐานของการออกแบบทั้งหมด พื้นหลังของแบบฟอร์มการติดต่อ จะเป็นการวาดซองจดหมายอย่างง่าย ซึ่งจะไม่ทำให้ผู้ใช้มีข้อสงสัยเกี่ยวกับสิ่งที่เปิดอยู่ตรงหน้าเขา)))) ในปุ่มปิด ใช้รูปภาพเล็กๆ สองสามภาพเพื่อให้เปลี่ยนแปลงเมื่อโฮเวอร์ คุณสามารถเปลี่ยนรูปภาพเหล่านี้ทั้งหมดเป็นของคุณเองได้อย่างง่ายดาย และปุ่มโดยทั่วไป หากคุณกล้าพอที่จะลองใช้ CSS3 ก็ได้
และนี่คือโค้ด CSS ในรูปแบบที่ยอดเยี่ยมของเรา พร้อมความคิดเห็นบางส่วน เพื่อความชัดเจนและเพื่อหลีกเลี่ยงคำถามที่ไม่จำเป็น:
/* ตั้งค่าเลเยอร์การทำให้พื้นหลังมืดลง ** กำหนดตำแหน่ง สี และความเข้มของการทำให้มืดลง */ .black-overlay( display: none; ตำแหน่ง: สัมบูรณ์; ด้านบน: 0%; ซ้าย: 0%; ความกว้าง: 100%; ความสูง: 100% ; สีพื้นหลัง: สีดำ; z-index: 1001; -moz-opacity: .70; ตัวกรอง: alpha(opacity=70); ความสูง: 340px; พื้นหลัง: url(images/envelope.png) ไม่ซ้ำกัน; z-index:1002; ตำแหน่ง: สัมพันธ์กัน; ระยะขอบ: 10% อัตโนมัติ ) /* สร้างปุ่มปิด, ** ขนาด, ตำแหน่งบน form */ .close-btn ( width: 31px; height: 31px; display: block; cursor: pointer;/* สำหรับกรณีใช้งานนอกเหนือจากนี้ แท็ก */ พื้นหลัง: url (images/close.png); 5) ,แทรก 0px 1px 2px 0px rgba(0,0,0,0.2); 5) ,แทรก 0px 1px 3px rgb(97,108,122);
รหัสกลายเป็นว่าค่อนข้างใหญ่ แต่คุณจะทำอะไรได้บ้างฉันไม่สามารถปฏิเสธความสุขของตัวเองได้ซึ่งแน่นอนว่าเป็นที่ยอมรับและสมเหตุสมผลในการทดลองและนำไปใช้จริงคุณสมบัติและฟังก์ชั่นใหม่ของมาตรฐาน CSS3 ด้วยเหตุนี้ โซลูชันเค้าโครงที่น่าสนใจและสดใหม่จึงปรากฏขึ้น ไม่ใช่โดยไม่มีข้อผิดพลาดและความสงสัย แต่นี่คือการเคลื่อนไหวที่แท้จริงและในขณะเดียวกันก็เป็นการฝึกฝนที่เป็นประโยชน์
ทั้งหมด! เราได้สร้างเครื่องมือที่ยอดเยี่ยมสำหรับการโต้ตอบกับผู้ใช้ร่วมกับคุณ ซึ่งเป็นแบบฟอร์มติดต่อแบบป๊อปอัปสำหรับเว็บไซต์ สิ่งที่คุณต้องทำคือดูตัวอย่างที่ใช้งานจริง ดาวน์โหลดซอร์สหากคุณต้องการ และแนบตัวจัดการ PHP ของคุณเข้ากับแบบฟอร์ม
ในไฟล์เก็บถาวรพร้อมแหล่งที่มา คุณจะพบทุกสิ่งที่คุณต้องการและตัวเลือกเพิ่มเติมสำหรับภาพพื้นหลังสำหรับแบบฟอร์ม
อัปเดตตั้งแต่วันที่ 21/05/2017
ฉันเพิ่มโฟลเดอร์ "mail" ลงในไฟล์เก็บถาวรต้นทาง ซึ่งคุณจะพบตัวจัดการ PHP อย่างง่ายสำหรับแบบฟอร์มและไฟล์การกำหนดค่าสำหรับการกำหนดค่า ตัวจัดการเชื่อมโยงกับแบบฟอร์มนี้ ฉันหวังว่าคำสั่งเล็ก ๆ และความคิดเห็นที่เขียนโดยตรงในโค้ดของไฟล์ตัวจัดการจะช่วยให้คุณทราบว่าอะไร ที่ไหน และทำไม
ขอแสดงความนับถืออันเดรย์
ฉันทุ่มเทให้กับวิธีที่คุณสามารถสร้างหน้าต่างป๊อปอัปที่แสดงบนเว็บไซต์เพียงครั้งเดียวและหลังจากช่วงเวลาหนึ่ง คุณสามารถแทรกแบบฟอร์มลงในหน้าต่างนี้เพื่อเป็นทางเลือกได้ อาจเป็นแบบฟอร์มสมัครสมาชิกหรือแบบฟอร์มติดต่อโดยทั่วไปอะไรก็ได้ เป็นการดีกว่าที่จะแสดงแบบฟอร์ม Ajax ในหน้าต่างป๊อปอัปเพื่อให้ส่งข้อมูลโดยไม่ต้องโหลดหน้าซ้ำ
โครงสร้างบทความ
หากคุณกำลังสร้างเว็บไซต์บนเครื่องมือเช่น Joomla หรือ WordPress คุณสามารถใช้โซลูชันสำเร็จรูปต่างๆ สำหรับแบบฟอร์ม รวมถึงนักออกแบบได้ แต่จะเป็นอย่างไรหากคุณเพียงออกแบบด้วย HTML ล้วนๆ และลูกค้าขอให้ "ฟื้นฟู" แบบฟอร์มเพื่อให้ทำงานได้ นี่คือจุดที่แบบฟอร์มนี้มีประโยชน์
รปภ. 08/02/2018
บทความนี้ได้รับการเขียนใหม่โดยคำนึงถึงการโพสต์แบบฟอร์มบน GitHub
เอาล่ะ มาเริ่มกันเลย ก่อนอื่น ดาวน์โหลดแหล่งที่มาของฟอร์มจากที่เก็บ GitHub ของฉัน
ฉันประกอบแอสเซมบลีนี้โดยใช้ตัวจัดการงาน Gulp ฉันเขียนเกี่ยวกับวิธีการทำงานร่วมกับเขาอย่าลืมอ่าน
การเชื่อมต่อแบบฟอร์มกับไซต์แตกไฟล์เก็บถาวรด้วยแบบฟอร์ม ถัดไป คัดลอกเนื้อหาทั้งหมดจากโฟลเดอร์ dist ลงในโฟลเดอร์ฟอร์ม (ตัวอย่างเช่น ฟอร์ม ajax) ในเทมเพลตไซต์ของคุณ ต่อไป เราจะเชื่อมต่อทรัพยากร - สไตล์และสคริปต์ โฟลเดอร์ css และ js มีสองเวอร์ชัน - แบบบีบอัดและแบบปกติ หากคุณวางแผนที่จะเปลี่ยนแปลงโค้ดในอนาคต ควรเชื่อมต่อเวอร์ชันที่ไม่มีการบีบอัดจะดีกว่า
หากไซต์ของคุณเปิดใช้งานไลบรารี jQuery อยู่แล้ว คุณไม่จำเป็นต้องเชื่อมต่อ โปรดทราบ
กำลังเริ่มต้นแบบฟอร์มฉันขอทราบทันทีว่าการตรวจสอบความถูกต้องของฟิลด์นั้นจัดระเบียบโดยใช้ HTML5
แบบฟอร์มนี้ถูกเรียกโดยเมธอด .simpleSendForm() ตัวอย่างเช่น:
$("#idForm").simpleSendForm();
แทนที่จะเป็น #idForm เราระบุตัวระบุแบบฟอร์ม โดยทั่วไป คุณจะพบโค้ดการเริ่มต้นฟอร์มได้ในไฟล์ scripts.js รหัสการเรียกปลั๊กอินสามารถตัดออกจากที่นั่นและเขียนไว้หน้าไฟล์ . อย่าลืมเกี่ยวกับ jQuery.(document).ready()
แบบฟอร์มสามารถยอมรับตัวเลือกบางอย่างได้
ตัวเลือก- SuccessTitle (สตริง) — ชื่อเรื่องของข้อความขอบคุณเมื่อส่งแบบฟอร์ม ค่าเริ่มต้นคือ "ขอบคุณที่เลือกเรา!"
- SuccessText (สตริง) - ข้อความใต้ชื่อข้อความขอบคุณ ค่าเริ่มต้นคือ “เราจะติดต่อคุณเร็วๆ นี้”
- errorTitle (สตริง) — ชื่อของข้อความแสดงข้อผิดพลาดในการส่งแบบฟอร์ม ค่าเริ่มต้นคือ “ไม่ได้ส่งข้อความ!”
- errorSubmit (สตริง) — ข้อความของข้อความแสดงข้อผิดพลาดในการส่งแบบฟอร์ม ค่าเริ่มต้นคือ “เกิดข้อผิดพลาดในการส่งแบบฟอร์ม!”
- errorNocaptcha (สตริง) — ข้อความแสดงข้อผิดพลาดหากไม่ได้กรอก captcha
- errorCaptcha (สตริง) — ข้อความแสดงข้อผิดพลาดหากการตรวจสอบล้มเหลว
- mailUrl (สตริง) — เส้นทางไปยังไฟล์ตัวจัดการ ค่าเริ่มต้นคือ "../form-submit/submit.php" คุณควรเปลี่ยนและระบุเส้นทางแบบเต็มหากโฟลเดอร์ "ส่งแบบฟอร์ม" ของคุณไม่ได้อยู่ในรากของไซต์
- autoClose (บูลีน) - ปิดหน้าต่างโดยอัตโนมัติหลังจากส่งแบบฟอร์มสำเร็จ (สำหรับแบบฟอร์มในหน้าต่างโมดอล) หน้าต่างแบบฟอร์มจะปิดลง โดยแสดงข้อความขอบคุณหลังจากผ่านไป 5 วินาที เวลานี้สามารถแทนที่ได้
- autoCloseDelay (ตัวเลข) - ระยะเวลา (เป็นมิลลิวินาที) ของการแสดงข้อความขอบคุณหลังจากนั้นจะปิดลง ค่าเริ่มต้นคือ 5,000 (5 วินาที)
- debug (บูลีน) - เท็จตามค่าเริ่มต้น เปิดใช้งานการแก้ไขข้อบกพร่องหากมีปัญหากับแบบฟอร์ม ดูข้อความแสดงข้อผิดพลาดในคอนโซล
- captcha (บูลีน) - เท็จตามค่าเริ่มต้น เปิดหรือปิดใช้งาน Recaptcha 2.0
- captchaPublicKey (สตริง) - คีย์สาธารณะ recaptcha
แบบฟอร์มของเรายังสามารถแสดงในหน้าต่างโมดอลได้อีกด้วย โมดอลจะถูกแสดงโดยห้องสมุด
รหัส HTMLรหัสปุ่ม
ขอโทรรหัสแบบฟอร์ม
เริ่มต้นหน้าต่างโมดอลและแบบฟอร์ม มาทำให้หน้าต่างปิดโดยอัตโนมัติหลังจากผ่านไป 3 วินาที หลังจากส่งแบบฟอร์มเรียบร้อยแล้ว คุณยังสามารถค้นหารหัสการโทร Magnific Popup ได้ในไฟล์ scripts.js
การเรียกแบบฟอร์มด้วยหน้าต่างโมดอล // ======= Init Magnific Popup ======= $(".modal-popup").magnificPopup(( type: "inline",fixedContentPos: false,fixedBgPos : true , overflowY: "auto", closeBtnInside: true, preloader: false, midClick: true, removalDelay: 300, mainClass: "mfp-top-up" )); // ===== Init modal form ==== $("#idForm").simpleSendForm (( SuccessTitle: "Your application has been suitableed!", SuccessText: "พนักงานของเราจะติดต่อคุณโดยเร็วที่สุด" , autoClose : จริง, autoCloseDelay: 3000 )); จะเปิดใช้งาน Recaptcha ได้อย่างไร?หากคุณต้องการเปิดใช้งาน recaptcha ในแบบฟอร์ม คุณจะต้องเพิ่มบล็อกว่างที่มีคลาส recaptcha ในโค้ด html ของแบบฟอร์มในตำแหน่งที่คุณต้องการแสดง ต่อไป ในโค้ดสำหรับการเรียกปลั๊กอินของฟอร์ม เราจะส่งตัวเลือก captcha ด้วยค่าจริง และส่งคีย์สาธารณะ recaptcha ของคุณไปยังตัวเลือก captchaPublicKey คุณสามารถรับกุญแจสาธารณะและกุญแจส่วนตัวได้
// ===== เริ่ม captcha ในรูปแบบ ==== $("#idForm").simpleSendForm(( SuccessTitle: "Your application has been suitableed!", SuccessText: "พนักงานของเราจะติดต่อคุณโดยเร็วที่สุด " , autoClose: จริง, autoCloseDelay: 3000, captcha: จริง, captchaPublicKey: "6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI" ));ถัดไป เปิดไฟล์ตัวจัดการแบบฟอร์ม send.php จากไดเร็กทอรีส่งแบบฟอร์ม เรามองหาตัวแปร recaptchaOn (ประมาณบรรทัดที่ 7) และตั้งค่าเป็น true ถัดไป ค้นหาตัวแปร $secret (ประมาณบรรทัดที่ 89) และเปลี่ยนคีย์ส่วนตัวเป็นของคุณเอง
โดยพื้นฐานแล้วทุกอย่าง หลังจากการยักย้ายเหล่านี้ คุณควรเห็นแคปช่า
โปรดทราบว่าบนไซต์สาธิต captcha ทำงานในโหมดทดสอบ ตามที่ระบุคีย์ทดสอบจาก Google
ตอนนี้เรามาดูไฟล์ตัวจัดการแบบฟอร์ม (submit.php) และอธิบายส่วนหลักของโค้ดกัน ตัวจัดการทำงานใน PHP ดังนั้นหากคุณต้องการทดสอบแบบฟอร์ม คุณจะต้องใช้ .
ข้อผิดพลาดที่เป็นไปได้ ข้อความจากแบบฟอร์มไม่ได้ถูกส่งไป ตัวโหลดล่วงหน้าก็แค่วิ่งไปรอบๆ แค่นั้นเอง มีปัญหาอะไร?ดูว่าเส้นทางไปยังไฟล์ตัวจัดการระบุไว้อย่างถูกต้องในการเริ่มต้นแบบฟอร์มหรือไม่:
mailUrl: - เส้นทางไปยังไฟล์ตัวจัดการ
ตรวจสอบด้วยว่าเปิดใช้งาน recaptcha อย่างถูกต้อง นั่นคือหากปิดใช้งาน ตัวเลือก recaptcha ในโค้ดเริ่มต้นและ $recptchaOn ในไฟล์ตัวจัดการควรตั้งค่าเป็น false หรือ true หากเปิดใช้งาน recaptcha
Google Recaptcha ไม่แสดงในแบบฟอร์มตรวจสอบว่ามีการส่งค่า recaptcha (การเรียก recaptcha) และ $recaptchaOn (ไฟล์ตัวจัดการ) หรือไม่ - จริง- ตรวจสอบด้วยว่าคุณระบุคีย์อย่างถูกต้องหรือไม่ - สาธารณะและส่วนตัว
ฉันทำทุกอย่างตามคำแนะนำแล้ว แต่แบบฟอร์มใช้งานไม่ได้ ฉันจะค้นหาข้อผิดพลาดได้ที่ไหนก่อนอื่น ฉันแนะนำให้คุณดูคอนโซลของเบราว์เซอร์และตรวจสอบข้อผิดพลาด ตรวจสอบด้วยว่าคุณเปิดใช้งานไลบรารี jQuery หรือไม่ ตรวจสอบว่ารวมไฟล์ scripts.js อย่างถูกต้อง หากทุกอย่างเรียบร้อยดี ให้ลองเปิดใช้งานการดีบักด้วยตัวเลือก debug: true หลังจากเปิดเครื่องแล้ว ให้มองหาข้อผิดพลาดที่คอนโซล
นี่คือแบบฟอร์ม ใช้บนเว็บไซต์ของคุณ ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ ฉันจะพูดอะไรได้อีก? มาคุยกันตอนนี้ - ในความคิดเห็น ถามว่ามีอะไรไม่ชัดเจนหรือไม่ นอกจากนี้หากพบข้อผิดพลาดกรุณาแจ้งให้เราทราบทันทีและเราจะดำเนินการแก้ไขให้...
นั่นคือทั้งหมดที่ ขอบคุณสำหรับความสนใจของคุณ พบกันในโพสต์ถัดไป!