ទម្រង់ដែលដំណើរការដោយមិនចាំបាច់មាន backend
បន្ថែម attribute តែមួយទៅទម្រង់នៅលើគេហទំព័រ static របស់អ្នក នោះការបញ្ជូនទាំងអស់នឹងចូលមក dashboard របស់អ្នក។ មិនចាំបាច់ JavaScript មិនចាំបាច់ widget បង្កប់ មិនចាំបាច់សេវាកម្មភាគីទីបី ហើយអ្នកដែលបំពេញវាក៏មិនចាំបាច់ចុះឈ្មោះអ្វីដែរ។
Its markup, styles and deploy script are on GitHub — copy it, change the fields, redeploy.
<form harvis-form="contact"> <input name="email" type="email" required> <textarea name="message"></textarea> <button>Send</button> </form>
បីជំហាន ហើយមួយក្នុងចំណោមនោះគឺគ្រាន់តែដេប្លយម្តងទៀត
គ្មានកម្មវិធីបង្កើតទម្រង់ណាត្រូវរៀន ហើយក៏គ្មាន endpoint ណាត្រូវចម្លងដែរ។ Attribute នេះហើយជាការរៀបចំទាំងមូល។
- 01
បន្ថែម attribute
ដាក់ harvis-form លើទម្រង់ណាមួយក្នុង HTML របស់អ្នក។ ដាក់ឈ្មោះឱ្យវា បើគេហទំព័រមានទម្រង់លើសពីមួយ។ មិនបាច់ដាក់ action និង method ទេ — ពួកវានឹងត្រូវបំពេញនៅពេលទំព័រត្រូវបានបញ្ជូនចេញ។
- 02
ដេប្លយម្តងទៀត
អូសថតឯកសារចូលម្តងទៀត ឬដំណើរការ npx harvis។ គ្មានអ្វីត្រូវកំណត់ គ្មានកូនសោត្រូវបិទភ្ជាប់ គ្មានប៊ូតុងណាត្រូវបើកនៅក្នុង dashboard ជាមុនឡើយ។
- 03
អានអ្វីដែលចូលមក
ការបញ្ជូននឹងបង្ហាញនៅក្រោមគេហទំព័ររបស់អ្នកក្នុង dashboard ដោយថ្មីជាងគេនៅមុនគេ។ បើកជួរណាមួយដើម្បីអានទាំងស្រុង ឬយកទាំងអស់ជា CSV។
ទាំងអស់នេះគឺ attribute ពីរប៉ុណ្ណោះ
harvis សរសេរទម្រង់ឡើងវិញនៅពេលវាចេញពី server ដូច្នេះទំព័រដែលអ្នកសរសេរនៅតែជាទំព័រដែលអ្នកសរសេរ។
<form harvis-form="contact"
data-harvis-redirect="/thanks.html">
<input name="email" type="email" required>
<button>Send</button>
</form><form harvis-form="contact"
data-harvis-redirect="/thanks.html"
action="/__harvis/form/contact" method="post">
<input type="hidden" name="_harvis_redirect" value="/thanks.html">
<input type="text" name="_harvis_hp" tabindex="-1" aria-hidden="true" style="…">
<input name="email" type="email" required>
<button>Send</button>
</form>Attribute ទាំងពីរ
- harvis-form
- សម្គាល់ទម្រង់នេះថាជាទម្រង់ដែលត្រូវប្រមូល។ តម្លៃរបស់វាគឺជាឈ្មោះ ដូច្នេះទម្រង់ច្រើននៅលើគេហទំព័រតែមួយនៅតែដាច់ដោយឡែក។ បើមិនដាក់តម្លៃ វានឹងត្រូវប្រមូលក្រោមឈ្មោះ “default”។
- data-harvis-redirect
- ជាជម្រើស។ ទំព័រនៅលើគេហទំព័ររបស់អ្នកដែលត្រូវនាំមនុស្សទៅបន្ទាប់ពីពួកគេផ្ញើ។ អ្វីក៏ដោយដែលចង្អុលទៅក្រៅគេហទំព័ររបស់អ្នកនឹងត្រូវមិនអើពើ។
ពេល JavaScript ជាអ្នកសាងទម្រង់ សូមសរសេរ endpoint ដោយខ្លួនឯង
harvis បំពេញ action នៅពេលទំព័រចាកចេញពីម៉ាស៊ីនមេ។ ទម្រង់ដែលកើតមានតែក្រោយពេល bundle របស់អ្នកដំណើរការ គឺមិនទាន់មាននៅក្នុងទំព័រនៅឡើយទេ ដូច្នេះគ្មានអ្វីត្រូវបំពេញ — អ្នកសរសេរនូវអ្វីដែលការសរសេរជំនួសនោះនឹងបានសរសេរ។ វានៅតែជា post HTML ធម្មតា ហើយអ្វីៗផ្សេងទៀតនៅទំព័រនេះនៅតែអនុវត្តបានដដែល។
- React
- Vue
- Svelte
- Angular
<form action="/__harvis/form/contact" method="post">
<input name="email" type="email" required />
<textarea name="message" />
{/* optional — where to land after sending */}
<input type="hidden" name="_harvis_redirect" value="/thanks" />
{/* optional — the decoy harvis would have added */}
<input
type="text"
name="_harvis_hp"
tabIndex={-1}
autoComplete="off"
aria-hidden="true"
style={{ position: "absolute", left: "-9999px", opacity: 0 }}
/>
<button>Send</button>
</form>- action + method
- គឺ endpoint ដែល harvis នឹងបានសរសេរ បូកនឹង post។ ផ្នែកចុងក្រោយគឺឈ្មោះទម្រង់ — អក្សរតូច លេខ និងសញ្ញាដាច់ ចំណែកអ្វីផ្សេងទៀតត្រូវប្រមូលនៅក្រោម “default”។
- _harvis_redirect
- មិនចាំបាច់ ហើយជាទម្រង់សរសេរដោយដៃនៃ data-harvis-redirect។ ត្រូវជាផ្លូវនៅលើគេហទំព័ររបស់អ្នកផ្ទាល់ អ្វីដែលចង្អុលចេញក្រៅត្រូវបានមិនអើពើ។
- _harvis_hp
- មិនចាំបាច់ ហើយជារបស់តែមួយគត់ដែលអ្នកបាត់បង់ពេលសរសេរទម្រង់ដោយខ្លួនឯង៖ នុយដែលចាប់ bot។ សូមរុញវាចេញក្រៅអេក្រង់ ជាជាងប្រើ display:none ហើយទុកឱ្យទទេ — អ្វីដែលបំពេញវានឹងត្រូវបោះចោល។
- harvis-form
- កុំដាក់វា។ attribute នេះគឺជាការស្នើឱ្យ harvis សរសេរ action ជំនួស ហើយអ្នកទើបតែសរសេរវាដោយខ្លួនឯងរួចហើយ។
ទុកឱ្យកម្មវិធីរុករកជាអ្នកផ្ញើ
គ្មាន preventDefault គ្មាន fetch។ ចម្លើយគឺជាការបញ្ជូនបន្តដែលកម្មវិធីរុករកដើរតាមដោយខ្លួនឯង ហើយនោះហើយជាអ្វីដែលរក្សាទម្រង់ឱ្យដំណើរការ ពេល script មិនដំណើរការ។
Prerender ក៏រាប់ជា JavaScript ដែរ
បើ build របស់អ្នកសរសេរទម្រង់ចូលក្នុង HTML រួចកម្មវិធីរបស់អ្នកទទួលយកវានៅក្នុងកម្មវិធីរុករក សូមសរសេរវាលទាំងនោះដដែល — វាលដែល harvis បញ្ចូលមិនមាននៅក្នុង component របស់អ្នកទេ ដូច្នេះ hydration អាចបោះវាចោល។
អ្វីដែលអ្នកទទួលបាន
អ្វីៗខាងក្រោមនេះបើកជាស្រេចតាំងពីដំបូង។ គ្មានទំព័រការកំណត់សម្រាប់មួយណាឡើយ។
មិនចាំបាច់ JavaScript
ទម្រង់បញ្ជូនតាមរបៀបដែល HTML បញ្ជូនតាំងពីដើមមក។ វានៅតែដំណើរការទោះបី script ត្រូវបានទប់ស្កាត់ លើទូរស័ព្ទយឺត និងក្នុងកម្មវិធីរុករកដែលបង្ហាញបានតែអក្សរ។
សារឥតបានការត្រូវបានច្រោះ
គ្រប់ទម្រង់ត្រូវបានបញ្ជូនចេញជាមួយវាលបញ្ឆោតមួយដែលមនុស្សមើលមិនឃើញ ហើយអ្វីដែលបំពេញវានឹងត្រូវបោះចោលដោយស្ងៀមស្ងាត់។ ដែនកំណត់អត្រាកំណត់ថាអ្នកចូលមើលម្នាក់ និងគេហទំព័រមួយ អាចផ្ញើបានប៉ុន្មានក្នុងមួយម៉ោង។
ទម្រង់ប៉ុន្មានក៏បានតាមចិត្ត
ដាក់ឈ្មោះឱ្យពួកវា — ទម្រង់ទំនាក់ទំនង និងទម្រង់ចុះឈ្មោះនៅលើគេហទំព័រតែមួយ មានបញ្ជីរៀងៗខ្លួន ហើយអ្នកអាចច្រោះ និងនាំចេញពួកវាដាច់ដោយឡែកបាន។
ទំព័រអរគុណផ្ទាល់ខ្លួនរបស់អ្នក
ចង្អុលទម្រង់ទៅទំព័រដែលអ្នកសរសេរផ្ទាល់ នោះមនុស្សនឹងទៅដល់ទីនោះបន្ទាប់ពីផ្ញើ។ បើមិនដាក់ ពួកគេនឹងឃើញទំព័របញ្ជាក់ធម្មតាមួយជំនួសវិញ។
នាំចេញពេលណាក៏បាន
ប៊ូតុងតែមួយផ្តល់ឱ្យអ្នកនូវ CSV ដែលមានជួរឈរសម្រាប់គ្រប់វាលដែលធ្លាប់មានអ្នកណាបញ្ជូនចូល ដូច្នេះទម្រង់ដែលបានបន្ថែមសំណួរនៅពាក់កណ្តាលផ្លូវ ក៏នៅតែបើកចេញជាតារាងតែមួយដដែល។
គ្មានអ្វីតាមដានអ្នកណាទេ
គ្មាន script តាមដាន គ្មាន cookie គ្មានភាគីទីបីនៅក្នុងទំព័រ។ អាសយដ្ឋានរបស់អ្នកចូលមើលត្រូវបាន hash មុនពេលរក្សាទុក ហើយធ្វើដូច្នេះក៏គ្រាន់តែដើម្បីឱ្យដែនកំណត់អត្រាអាចបែងចែកការបញ្ជូនពីរបានប៉ុណ្ណោះ។
ដែនកំណត់
ធូរធារសម្រាប់ទម្រង់ទំនាក់ទំនង ប៉ុន្តែតឹងល្មមមិនឱ្យ script ដែលតម្រង់មកគេហទំព័ររបស់អ្នកបំពេញប្រអប់សំបុត្ររបស់អ្នកបាន។
- វាលក្នុងមួយការបញ្ជូន
- ៣០
- ប្រវែងវាលមួយ
- ៥,០០០ តួអក្សរ
- ទំហំការបញ្ជូនមួយ
- ៦៤ KB
- ការបញ្ជូនក្នុងមួយគេហទំព័រ
- ៦០ ក្នុងមួយម៉ោង
- ការបញ្ជូនក្នុងមួយអ្នកចូលមើល
- ២០ ក្នុងមួយម៉ោង
- រក្សាទុកក្នុងមួយគេហទំព័រ
- ១,០០០ ថ្មីជាងគេនៅមុនគេ
សំណួរ
អ្វីដែលមនុស្សសួរ មុនពេលដាក់ទម្រង់លើគេហទំព័រ static។
តើទម្រង់ static ជាអ្វី?
គឺទម្រង់នៅលើគេហទំព័រដែលគ្មាន server ផ្ទាល់ខ្លួន។ ជាធម្មតា នោះមានន័យថាទម្រង់គ្មានកន្លែងណាត្រូវផ្ញើទៅទេ ដែលជាមូលហេតុធ្វើឱ្យគេហទំព័រ static ភាគច្រើនត្រូវខ្ចីសេវាកម្មទម្រង់របស់ភាគីទីបី។ harvis បញ្ជូនគ្រប់ទំព័រនៃគេហទំព័ររបស់អ្នករួចជាស្រេចហើយ ដូច្នេះវាអាចទទួលការបញ្ជូននៅតាមផ្លូវបានតែម្តង។
តើខ្ញុំត្រូវចេះសរសេរកូដទេ?
អ្នកគ្រាន់តែត្រូវបន្ថែមពាក្យមួយទៅក្នុង HTML មួយបន្ទាត់ប៉ុណ្ណោះ។ បើ AI ជាអ្នកសរសេរគេហទំព័ររបស់អ្នក សូមប្រាប់វាឱ្យបន្ថែម attribute harvis-form ទៅទម្រង់ — វាដឹងវិធីរួចហើយ ព្រោះការណែនាំដែល harvis ចេញផ្សាយសម្រាប់ជំនួយការ AI បាននិយាយដូច្នេះ។
តើវាដំណើរការទេ បើបិទ JavaScript?
ដំណើរការ។ នោះហើយជាមូលហេតុដែលវាត្រូវបានសាងសង់បែបនេះ។ ទម្រង់ធ្វើការ post HTML ធម្មតា ហើយកម្មវិធីរុករកតាមការបញ្ជូនបន្តបន្ទាប់ពីនោះ ដូចគ្នាបេះបិទនឹងរបៀបដែលទម្រង់ដំណើរការមុនពេលមាន JavaScript។
តើខ្ញុំអាចបន្តប្រើ endpoint ផ្ទាល់ខ្លួន ឬសេវាកម្មទម្រង់ផ្សេងបានទេ?
បាន — គ្រាន់តែកុំបន្ថែម attribute នេះ។ ទម្រង់ដែលគ្មាន harvis-form ត្រូវបានបញ្ជូនចេញដូចអ្នកសរសេរបេះបិទ រួមទាំង action ផង។ ចំពោះទម្រង់ដែលមានវា harvis នឹងជំនួស action ព្រោះការបន្ថែម attribute នេះជារបៀបដែលអ្នកប្រាប់ថាការបញ្ជូនគួរទៅណា។
តើវាដំណើរការជាមួយ React, Vue ឬ Svelte ទេ?
ដំណើរការ ដោយមានជំហានបន្ថែមមួយ។ បើទម្រង់មាននៅក្នុង HTML ដែល build របស់អ្នកបង្កើត នោះ attribute មួយគ្រប់គ្រាន់ហើយ។ បើវាលេចឡើងតែក្រោយពេល JavaScript ដំណើរការ សូមសរសេរ action="/__harvis/form/contact" និង method="post" ចូលក្នុង component វិញ — endpoint ដដែល dashboard ដដែល ហើយកម្មវិធីរុករកនៅតែជាអ្នកផ្ញើដដែល។
តើមនុស្សអាចភ្ជាប់ឯកសារបានទេ?
មិនទាន់ទេ។ វាលឯកសារនៅលើទម្រង់ដែលត្រូវប្រមូល នៅតែដំណើរការសម្រាប់អ្នកចូលមើល ប៉ុន្តែឯកសារនោះមិនត្រូវបានរក្សាទុកទេ — មានតែវាលអក្សរប៉ុណ្ណោះដែលត្រូវរក្សាទុក។
តើការបញ្ជូននឹងទៅជាយ៉ាងណា បើខ្ញុំលុបគេហទំព័រ?
ពួកវានឹងបាត់ទៅជាមួយ។ ការបញ្ជូនជាកម្មសិទ្ធិរបស់គេហទំព័រ មិនមែនរបស់ការដេប្លយណាមួយទេ ដូច្នេះការដេប្លយម្តងទៀតរក្សាពួកវាទុក ចំណែកការលុបគេហទំព័រវិញលុបពួកវាចោលជារៀងរហូត។ សូមនាំចេញជា CSV ជាមុនសិន បើអ្នកចង់រក្សាទុកពួកវា។
ដាក់គេហទំព័រឱ្យដំណើរការ រួចសាកល្បងមើល
ការផ្សព្វផ្សាយគឺឥតគិតថ្លៃ ហើយចំណាយពេលប្រហែលពីរវិនាទី។ បន្ថែម attribute ទៅទម្រង់មួយ ដេប្លយម្តងទៀត រួចផ្ញើសារសាកល្បងទៅខ្លួនឯង។