Please, post your errors or questions on GitHub (not in the reviews area)
Why Magic Forms?
Almost everyday we make forms for our clients, personal projects, etc. Sometimes we need to add or remove fields, change validations, store data and at some point, this can become boring and repetitive. So, the objective was to find a way to just put HTML elements on the page, skip the repetitive task of coding and (with some kind of magic) store this data in the database or send by mail.
Documentation
New documentation available here: https://skydiver.github.io/october-plugin-forms/
Features
- Create any type of form: contact, feedback, registration, uploads, etc
- Write only HTML
- Don't code forms logic
- Laravel validation
- Custom validation errors
- Use multiple forms on same page
- Store on database
- Export data in CSV
- Access database records from backend
- Send mail notifications to multiple recipients
- Auto-response email on form submit
- reCAPTCHA validation
- Support for Translate plugin
- Inline errors with fields (read documentation for more info)
- AJAX file uploads (BETA, available since v1.3.0)
The following themes use this plugin

Altass
Altass
Minimal theme for OctoberCMS

TechMarket
TechMarket
Modern, responsive and highly customizable eCommerce OctoberCMS theme based on Shopaholic eCommerce Plugin Ecosystem

Argon
Argon
A beautiful theme based on CreativeTim Argon. Comes with a simple page builder and custom blocks that extends Argon Design System.

MegaKit
MegaKit
A multipurpose theme based on Bootstrap 4. Ported to OctoberCMS , designed and developed by themefisher

MaterialKit
MaterialKit
A beautiful theme based on CreativeTim MaterialKit. Comes with a PageBuilder in StaticPages.

Simple Blog Theme
Simple Blog Theme
Simple theme for blog website

Ultimate Website Builder - CREATOR Theme Bundle
Ultimate Website Builder - CREATOR Theme Bundle
The Ultimate Octobercms Theme Bundle with Advanced Page Builder & Powerful Component Blocks

Bootstrap-Sass-Book
Bootstrap-Sass-Book
Bootstrap 4 SASS easy customizable Theme with RainLab Blog support

Mercurius
Mercurius
Jagu Mercurius October CMS frontend theme

eMarket - Advanced E-Commerce Octobercms theme
eMarket - Advanced E-Commerce Octobercms theme
Premium Ecommerce Octobercms theme based on OFFLINE Mall Plugin

Beckham
Beckham
Portfolio, blog website template

Axiam E-Commerce Theme for Shopaholic
Axiam E-Commerce Theme for Shopaholic
Responsive Bootstrap 4 Shopaholic theme for October CMS

Rezume
Rezume
Rezume is an impactful dark one page CV website template that helps create a striking online presence
Documentation available: https://skydiver.github.io/october-plugin-forms/docs/introduction/
-
EddyShivers
Found the plugin useful on 28 Oct, 2020
Great and easy to use plugin for forms! An essential plugin for all your OctoberCMS projects.
-
OctoberCMSIsKing
Found the plugin useful on 27 Feb, 2020
This is fast and able to export the user submitted data easily and quickly. Some similar plugin charges $50 and yet the created simple forms takes a long time to process when user submits and also no export function for submitted data! The best for this plugin is it's free!
-
Sergey
Found the plugin useful on 15 Feb, 2020
Best plugin for forms
-
Pavel Andrei
Found the plugin useful on 21 Nov, 2019
Hi, first of all I would like to thank you for the good and very useful plugin. I have a question thought. Is there any posibility to insert in the list view the filled in value of a record? Let's say that the stored field is Driver Name, the driver name will apear when I click on the recod and see all the stored details but it would be very useful if we can see the name of the driver also in the List View because i would know that the specific record is for the X Driver.
At this moment we can't see who filled in the form in list view and is time consuming to open each record to search for a specific persona...phone..etc.
Thank you in advance.
-
Romain 'Maz' BILLOIR
Found the plugin useful on 20 Oct, 2019
A really good and well-documented plugin!
I adapted it for bulma framework which I prefer to bootstrap, I'll share it as a git if someone is interested.
-
Doug Gough
Found the plugin useful on 12 Sep, 2019
This is such a great idea for a plugin. I love the fact that I can use whatever markup I want. I would recommend this over the other form builders because it keeps close to the design philosophy of October itself. If you can build a partial in October with valid html form markup you will be able to use this plugin no problem.
-
anas omush
Found the plugin useful on 4 Sep, 2019
Great Plugin Ever related forms really like a magic. but i guess validation rule regex with or operator has a problem ex: required|regex:#^(+|00)9627\d{9}$#i really thanks
-
Eduardo Oliveira
Found the plugin useful on 22 Mar, 2019
Thanks for this wonderful plugin. It could use a better documentation, but with very little effort I was able to figure out how to make the generic form, then the empty one.
I just would like to understand how to translate it to my language, brazilian portuguese. I've seen this lang/pt-br/lang.php on GitHub, but couldn't understand how to enable it nor how does this supports Translate plugin.
Sadly, the lack of documentation makes it hard for non hardcore-users. :D
-
Manuel Echevarria
Found the plugin useful on 29 Jul, 2018
Hi,
Nice plugin! Is there any way to update data using this plugin? For example using this plugin to create a form to enter some data for a contact to database and then update some fields with updated data to database.
-
Lutte Patrick
Found the plugin useful on 21 Jul, 2018
Great job on creating this very useful plugin!!!
-
Joel Van Patten
Found the plugin useful on 16 May, 2018
Definitely could use better documentation -- needs a complete step-by-step walkthrough using screenshots (or a video).
For others, when you override the component HTML, watch out that you call it as a component instead of a partial:
THIS WORKS JUST FINE
{% component 'genericForm' %}
BEWARE THIS WILL NOT WORK
{% partial 'genericform/default' %}
Overall a great plugin though, extremely useful once you get it set up.
-
Vaclav Samal
Found the plugin useful on 2 May, 2018
Hi,
is there any way how to override parameters as:
Send Notifications -> Subject Send Auto-Response -> Subject Send Notifications -> Recipients Send Auto-Response -> Sender Address
for dynamic use?
thanks
Vaclav
-
Kirill
Found the plugin useful on 1 May, 2018
Can you give an example of validation? Yes, i know about laravel validation rules, but different variants of the key-values don't work
-
Lucas Zamora
Found the plugin useful on 27 Apr, 2018
Excellent plugin.
-
Brandon Pettis
Found the plugin useful on 22 Mar, 2018
Useful App Converted to a Comment System
I spent time building a system that can run as a comment form because I was tired of looking for one outside of the forum topic. Thanks!
- 1.Create a page for the form
- 2.Create a partial that is going to load the back-end data
- 3.Set the where() method to specify what data is being queried
- 4.Add the ajax handler to refresh partial after submission to the component
- 5.Add the php call to the onRefreshTime()
1. Page Markup: Summarized
<div id="magicForms">{% partial 'testing/magicform' %}</div> <form data-request="{{ genericForm2 }}::onFormSubmit">...</form>
2. Partial Markup: Summarized
<ul> {% for record in records %} <li><strong>{{ record.form_data_arr.name }}:</strong> {{ record.form_data_arr.comment }}</li> {% endfor %} </ul>
3. Parital Code: This is where the the collection methods get handy. Using the where() method I can query for the specific group. Here I am searching for the forms with 'group' and 'testing-comments'; the reverse is to put the newest comment on top.
use \Martin\Forms\Models\Record as FormsRecords; function onStart() { $comments = FormsRecords::all(); $this['records'] = $comments->where('group', 'testing-comments')->reverse(); }
4. Generic AJAX Form Component: Add this in More Settings -> JS on Success
jQuery(document).ready(function($) { setInterval(function () { $.request('onRefreshTime', { update: { 'testing/magicform' : '#magicForms' } }) }, 300); });
5. Page Code: This is needed for the javascript to call the onRefreshTime.
function onRefreshTime() { return [ '#magicForms' => $this->renderPartial('testing/magicform') ]; }
-
Martin M. author
Replied on 25 Mar, 2018
Hello Brandon,
Thanks for your great comment.
Do you want to add to the "official documentation" here?
Thanks.-
-
Steven Spiller
Found the plugin useful on 25 Feb, 2018
Really simple to use once you know how. Having only just started using OctoberCMS, I was completely lost on how to get this working. But following the documents linked here, this is how I "got" it: create a folder called genericform containing a default.htm file in the theme's partials folder using FTP. Added the genericform component to a page and bingo - customised form. I hope this helps others just starting out with OctoberCMS.
-
Martin M. author
Replied on 26 Feb, 2018
Hello Steven:
How do you think the docs can be improved?
Also, you can contribute to the documentation here: https://github.com/skydiver/october-plugin-forms
Thanks.-
-
Mattew Andreev
Found the plugin useful on 17 Feb, 2018
Hi for all. Plugin is great. To work captcha you need to make site work via https, because this says on google recaptcha page faq.
-
Zoltán Frigy
Found the plugin useful on 9 Feb, 2018
Martin! It's a very good plugin for me, it's quick and easy to help me when making my website forms. I just started studying the october cms system 2 weeks ago. I have one problem, I can not understand how the Recaptcha section works.
- I filled the site and secretkeys under the system menu item.
- I have enabled captcha in the recaptcha settings section.
- With using your pre-assembled generic form I tried to work but failed. The following error is displayed: An exception has been thrown during the rendering of a template ('recaptcha' partial is not found.)
What did I miss? How can I make it work?
-
Zanor
Found the plugin useful on 9 Feb, 2018
Best Form plugin on the October marketplace.
-
Martin M. author
Replied on 26 Feb, 2018
Thanks Zanor!
-
Roman Krylov
Found the plugin useful on 3 Feb, 2018
Magic Forms is great!
There is only one demo for an example of its use.
But after reading the comments and documentation it was possible to get it to work.
All that I needed from the forms, I was able to implement with it!
Thank you very much, Martin!
-
Martin M. author
Replied on 26 Feb, 2018
Thanks for the comment Roman!
-
Karen Grigoryan
Found the plugin not useful on 25 Jan, 2018
Very poor documentation, didn't understand how to use the plugin. Do you have any quick video guide?
-
Martin M. author
Replied on 24 May, 2018
Feel free to record a video/tutorial and will be happy to include on the front page
-
Jasper
Found the plugin useful on 11 Jan, 2018
forms are not submitting on cms pages, but works on cms layouts
I have a page registration.htm then I created the Empty AJAX Form, but it's not submitting. My other form which is contact form using Generic AJAX Form, I put it in one of my layout and it works fine.
what should be the problem? is forms not working on cms pages?
-
Suhrab
Found the plugin useful on 21 Dec, 2017
Great Plugin but the upload file button does not work. Can anyone help me please?
-
pete bannister
Found the plugin useful on 18 Oct, 2017
This is a great plugin when you get it working.
The documentation does not make the pre-requisites clear. You must ensure that the October AJAX framework is included on the page: <https://octobercms.com/docs/ajax/introduction#framework-script>
Additionally the component cannot be added to a partial otherwise to yet an AJAX handler not found error - it must be added to a page.
-
zooks
Found the plugin not useful on 12 Aug, 2017
The plugin looks OK, but it's broken. I tried all three types of components: emptyForm, genericForm, uploadForm. None of them work. On sending form, the page just reloads with no errors (even in log files). I tried to change SMTP to PHP Mail in October CMS settings. It didn't help me.
Also captcha for uploadForm didn't output anything (Google keys was set before).
-
Ajinkya Kambe
Found the plugin useful on 11 Aug, 2017
"The partial 'recaptcha' is not found." I am getting this problem. I tried finding the answer but none of it worked. Can you please help me?
-
Claudson Martins
Found the plugin not useful on 29 Jul, 2017
Seems to be useful, but is poorly documented. Couldn't even put to work the default genericForm.
Pitty :(
-
Gene Koenen
Found the plugin useful on 13 Jul, 2017
Hello and thanks for the great plugin.
I have a question because I get this error when I use the file uploads plugin: uploader.js:340 Uncaught TypeError: $(...).render is not a function at uploader.js:340 at uploader.js:344
This is the syntax it's getting stuck on: $(document).render(function () { $('[data-control="fileupload"]').fileUploader() })
}(window.jQuery);
I see the upload form and I can submit it but I just can't upload a file. It's not working..
Can you help me?
-
Asma S Daher
Found the plugin useful on 11 Jul, 2017
Hello, not sure what I'm messing I'm not receiving the emails?
[genericForm ContactForm] group = "ContactForm" rules[name] = "required" rules[email] = "required|email" rules[subject] = "required" rules[message] = "required" rules_messages[name.required] = "name is required" rules_messages[email.required] = "email is required" rules_messages[subject.required] = "subject is required" rules_messages[message.required] = "message is required" rules_messages[email.email] = "email must be valid" messages_success = "Your message was successfully submitted" messages_errors = "There were errors with your submission" mail_enabled = 1 mail_subject = "new contact message" mail_recipients[] = "info@theen.biz" mail_recipients[] = "asma020@gmail.com" mail_replyto = "email" mail_resp_enabled = 1 mail_resp_field = "email" mail_resp_from = "info@theen.biz" mail_resp_subject = "Thank you for contacting us!" reset_form = 1 inline_errors = "display" anonymize_ip = "disabled" recaptcha_theme = "light" recaptcha_type = "image" recaptcha_size = "normal"
-
Martin M. author
Replied on 12 Jul, 2017
Hello Asma,
Config looks fine, are October mails working?
-
Gibran Dimasagung
Found the plugin not useful on 31 May, 2017
I do not understand how to install this plugins, can the documentation be clarified again and please kindly help me.
-
Irina
Found the plugin useful on 29 May, 2017
Greate plugin! Thank you for your work very much! Can I add some js on success answer? I have 2 forms on my page and I need to add different google analytics actions.
-
Denis Smirnov
Found the plugin useful on 22 May, 2017
Hi! Excellent plugin!! but I have some error occurs, it says:
Form session expired! Please refresh the page.
Can you please help me solve the problem?
-
Martin M. author
Replied on 22 May, 2017
Hello Denis, usually, this problem occurs when this line is missing on the component HTML:
{{ form_token() }}
-
Michael Reich
Found the plugin useful on 15 May, 2017
Love that plugin so easy to create forms!
What is the best way to create multiple forms?
-
Cleosetric
Found the plugin useful on 13 Apr, 2017
im very thanksful there's plugin that's so useful like this plugins, btw i've asking the question about my problem to outputing the value from backend to the frontend, is that must using SQL query? or it become simple like {{ form.name }} ? i've try it to outputing the value but i dont have any idea how.
im glad if there's anyone tell me how to do that.
-
Martin M. author
Replied on 14 Apr, 2017
Please, check the updated documentation (feedback will be welcome)
-
Publipresse Médias
Found the plugin useful on 7 Apr, 2017
Great plugin, really useful and easy to use.
Some lack with file upload, but the support is really good and I'm sure this part will be improved over time.
-
Martin M. author
Replied on 9 Apr, 2017
Thanks for your words.
Yes, file upload is still beta, there is a discussion on github about the future, maybe change to another component ...
-
Leonard Smith
Found the plugin not useful on 5 Apr, 2017
This looks like it could be a handy plugin, but the documentation terrible. Provide some screenshots, etc. so that you don't have to rely on everyone being an OctoberCMS developer to make sense of what you are doing.
-
Gunardi Wu
Found the plugin useful on 23 Mar, 2017
I like this plugin.
One question: can you provide me with pointers on how to extend this ? say I want to save user_id (of authenticated user, a new column already added to the table thru new plugin), how to do it?
Thanks
-
Ayhan Eraslan
Found the plugin useful on 7 Mar, 2017
recaptcha did not display, My problem is regulated in this way
<form data-request="{{ emptyForm }}::onFormSubmit"> {{ form_token() }} <div id="{{ emptyForm }}_forms_flash"></div> <!-- YOUR FORM FIELDS --> {% partial 'recaptcha' __SELF__=emptyForm %} <!-- SUBMIT BUTTON --> </form>
-
Petr Vytlačil
Found the plugin useful on 7 Mar, 2017
Hi, plugin is cool but i want ask. When i send form, data dont clear from fields. Its my mistake or plugin?
THX
-
Martin M. author
Replied on 7 Mar, 2017
Hello Petr
There is an option to reset form, you can check here
-
Vianney
Found the plugin useful on 6 Mar, 2017
Great plugin! Easy to setup and customize!!
Thank you very much
Is it possible to have inline validation in the current version instead of a (possibly huge) alert-box?
-
Martin M. author
Replied on 6 Mar, 2017
Hello Vianney:
You can check the issue #21 and the branch inline-errors on github.
We are testing for possible alternative to inline errors.
Feel free to test for yourself (feedback is welcome).
Thanks.-
-
Ralf Blumenthal
Found the plugin useful on 4 Mar, 2017
Like it very much so far. Used the file upload and the empty form. Both worked liked a charm so far. Thank you for all the work.
-
Martin M. author
Replied on 5 Mar, 2017
Thanks for your words Ralf
-
Théo Corée
Found the plugin useful on 6 Feb, 2017
Very nice plugin, really useful, easy to use, user friendly, flexible, regularly updated... By far the best form plugin for October.
-
Martin M. author
Replied on 7 Feb, 2017
Thanks for your comments.
Happy to see my work helping other people.
-
Josef Stil
Found the plugin useful on 17 Jan, 2017
I really want to use this plugin, but it's hard for me to understand due to the "generic ajax form" being all blank with no information in it. Am I missing something?
-
Martin M. author
Replied on 18 Jan, 2017
If you are using the empty ajax form component you need to:
-
override the component HTML, more info here
-
paste the provided template:
<form data-request="emptyForm::onFormSubmit"> {{ form_token() }} <div id="{{ __SELF__ }}_forms_flash"></div> <!-- YOUR FORM FIELDS --> {% partial '@recaptcha' %} <!-- SUBMIT BUTTON --> </form>
- Replace
<!-- YOUR FORM FIELDS -->
with the HTML of your form (inputs, selects, textareas) and
<!-- SUBMIT BUTTON -->
with a submit button
-
-
ivan
Found the plugin useful on 15 Jan, 2017
Thanks for your job! Can it attach file to backend/mail?
-
Martin M. author
Replied on 15 Jan, 2017
AJAX file upload it's "too complicated" (you can read more here.
I think the best solution will be creating a new component who refresh the page (or redirect) to upload files.
Definitely it's something i want to see on the plugin, but, honestly don't know when.
Edit: This option was added on v1.3.0
-
Abdulsalam
Found the plugin useful on 13 Jan, 2017
Hi, do not work plugin. I don't understand how to setup could put the video for easy installation?
-
Sam
Found the plugin useful on 12 Jan, 2017
Excellent plugin!!
This is by far the best form plugin that I have used for October. Easy to use and very flexible.
Quick question: How can we create an auto-response email to the person submitting the form?
Thanks for this plugin!
A+++
-
Martin M. author
Replied on 12 Jan, 2017
Thanks for the feedback!
I will add this option to the plugin in the next version.
Edit: this option was added on v1.2.1
-
Mark van den Elzen
Found the plugin useful on 9 Jan, 2017
Great job on creating this very useful plugin!!!
-
1.5.1 |
email templates improvemenrs [thanks to mjauvin] Dec 10, 2020 |
---|---|
1.5.0 |
fixes related to October Build 469 [thanks to mjauvin] Sep 13, 2020 |
1.4.20 |
added invisible reCAPTCHA [thanks to mjauvin] May 01, 2020 |
1.4.19 |
added russian translation [thanks to FlusherDock1] Feb 29, 2020 |
1.4.18 |
export records enhancements [thanks to Fosphatic] Dec 29, 2019 |
1.4.17 |
allowing sanitize to work recursively [thanks to multiwebinc] Nov 17, 2019 |
1.4.16 |
added chinese translation [thanks to everyx] Sep 28, 2019 |
1.4.15 |
enhancements related to saving record and events [thanks to boxxroom] Sep 28, 2019 |
1.4.14 |
fixed error with empty auto-response subject Mar 10, 2019 |
1.4.13 |
pass an array with form errors to JavaScript [thanks to multiwebinc] Jan 25, 2019 |
1.4.12 |
use form variables on auto-response mail subject [thanks to jiargei] Jan 21, 2019 |
1.4.11 |
added Laravel custom attributes to form validation [thanks to geekfil] Dec 21, 2018 |
1.4.10 |
improvements related to event functionality Aug 13, 2018 |
1.4.9.2 |
bugfix when a form field array has more than 2 levels of depth Jun 08, 2018 |
1.4.9.1 |
fix a nullable type error on PHP 7.0 May 26, 2018 |
1.4.9 |
fix on replaceToken function when replacement is null [thanks to leonaze] May 24, 2018 |
1.4.8 |
added GDPR cleanup feature [thanks to Alex360hd] May 12, 2018 |
1.4.7 |
you can use your form variables on notification mail subject [thanks to Alex360hd] Apr 15, 2018 |
1.4.6.1 |
Changed database field from json to text to support MySQL 5.5 Nov 27, 2017 |
1.4.6 |
New option to skip saving forms data on database. Nov 21, 2017 |
1.4.5.1 |
Store form data without escaping unicode [thanks to panakour] Oct 14, 2017 |
1.4.5 |
Mail class code refactoring Oct 06, 2017 |
1.4.4.1 |
Fix with notifications emails Sep 10, 2017 |
1.4.4 |
Use custom partials for Success and Error messages Sep 10, 2017 |
1.4.3 |
Fixes related to October Build 420 Aug 30, 2017 |
1.4.2 |
Escape HTML characters on the view records page [thanks to Andre] Jul 30, 2017 |
1.4.1 |
New option "Reply To" Jun 19, 2017 |
1.4.0 |
Added Events (please, refer to docs) [thanks to therealkevinard] Jun 09, 2017 |
1.3.9 |
Use custom mail templates May 24, 2017 |
1.3.8 |
Fixed handling arrays (radio inputs) in notification email Apr 28, 2017 |
1.3.7 |
Displaying errors with fields (inline errors) Apr 14, 2017 |
1.3.6 |
French translation Mar 16, 2017 |
1.3.5 |
New option "Redirect on successful submit" Mar 05, 2017 |
1.3.4 |
New "Anonymize IP" option Feb 26, 2017 |
1.3.3 |
Fixed record detail page when form data contains an array Feb 17, 2017 |
1.3.2 |
Fixed multiples reCAPTCHAs on same page Feb 05, 2017 |
1.3.1 |
Added lang pt-br Feb 04, 2017 |
1.3.0 |
AJAX file uploads Feb 01, 2017 |
1.2.4 |
Added detailed reCAPTCHA help Feb 01, 2017 |
1.2.3 |
New option to reset form after successfully submit Jan 27, 2017 |
1.2.2 |
Override notifications and auto-response email subjects Jan 15, 2017 |
1.2.1 |
Auto-response email on form submit Jan 13, 2017 |
1.2.0 |
Export stored data in CSV format Jan 12, 2017 |
1.1.2 |
Filter forms records Jan 12, 2017 |
1.1.1 |
fix when using reCAPTCHA + allowed fields Jan 07, 2017 |
1.1.0 |
Added reCAPTCHA Jan 06, 2017 |
1.0.1 |
Added CSRF protection Jan 05, 2017 |
1.0.0 |
First version of Magic Forms Dec 31, 2016 |