If your form looks OK - but when you click the submit button nothing appears to happen, or the page reloads but no email is sent and/or no record is saved in a database table then it's possible that there is a problem with the form Action URL and it is not submitting to ChronoForms. This FAQ suggests some ways to check what is happening and solve the problem.
Quick fix: Try setting 'Relative URL' to 'No' in the form HTML (Render form) action on the setup tab (see 'Forms in Articles and Modules' below for more info).
Each form has an Action URL - you can see what that is by checking the Page Source in your browser (usually you can right click or Option+ click and select 'View Source'). Look for the ChronoForms <form. . .> tag which will look something like this (line-breaks added for clarity):
<div class="gbs3"> <form action="http://our_domain.com/index.php?option=com_chronoforms5&chronoform=form_name&event=submit" enctype="multipart/form-data" method="post" name="form_name" id="chronoform-form_name" class="chronoform form-horizontal" > . . . </form> </div>
You will see that the action URL here is a full standard ChronoForms URL that identifies:
option=com_chronoforms5 // the component chronoform=form_name // the form name event=submit // the form event to submit to
If your URL has a different structure to this then your form may not be submitting to ChronoForms.
There are several possible causes, and one or more of these may be happening:
- The form is in an article or module and part of the page url is being used
- The site has SEF URLs on and an SEF URL is being used
- The page is linked to a Menu Item and the menu URL is being used
Testing the form
The first stage is to make sure that your form will submit correctly
Go to the ChronoForms Forms Manager and click the View Form link there, or the Test Form icon in the Form Editor. Either of these should open your form with and show a URL in your browser like this:
http://your_domain.com/index.php?option=com_chronoforms5&chronoform=form_name
If the URL is not in this form then you have SEF URLs being set on your site, see more about that below.
Check to see if the form submits correctly from here. Although you opened this from the Site Admin it is a normal page in the front-end of your site.
If the form does not submit please try one more test by editing the URL to add &tmpl=component to the end. This should load the form without the site template and will remove one more possible cause of problems.
SEF URLs
There are three different ways that SEF URLs are commonly created on Joomla! sites, again more than one of these may be in use.
- URLs created with the Joomla! SEF System plug-in.
- URLs created from menu items.
- URLs created with another third-party SEF extension like SH404SEF or MijoSEF
If you have a third-party SEF extension please configure it to ignore ChronoForms URLs. If you don't do this your form will probably not submit correctly.
ChronoForms should work correctly with menu and Joomla! SEF URLs . . . unless your form is in an article or module . . .
Forms in Articles and Modules
By default, ChronoForms sets the form Action URL to use a 'Relative' URL - that is, it uses the URL for the current page and adds the form name and event to the query string e.g. &chronoform=form_name&event=submit.
This will work correctly provided that the Joomla! Router knows that the URL needs to be submitted to ChronoForms. When this fails then then the form will not submit.
The first solution to try is to turn the 'Relative URL' setting to 'No'. The setting is in the form HTML (Render form) action in the On Load event in the Designer tab in the form editor.
Note: if you used the New Simple wizard to create your form this action is not available. Change the Setup Mode in the General tab from Simple to Advanced then Save the form and you will be able to see the full Setup tab and the action.
Most of the time changing this setting will resolve form submission problems.
Using a hidden menu
If this doesn't solve the problem you can create a new menu item to redirect to the form submit event.
- In the Menu Manager create a new Menu called - say, Hidden, it should be published but not assigned to a module so it does not display on the site.
- Add a new Menu Item for your form called say 'My Form - submit' and with an alias my_form-submit
- On the Options tab for the new Menu Item set the Form Name to your form name and the Event to submit
- Save the menu item
- In your form, open the HTML (Render Form) action and add the menu alias as the Action URL e.g. my_form-submit
- Save and test
This method has worked for me on several sites and has the added advantage of creating an SEF version of the submit url without the &event=submit. It can be adapted and used for other form events if needed.