Make A Simple Contact Form and Email Response in ModX

1) Create a chunk for the form and add form code.


[[!FormIt? 
&hooks=`spam,email,redirect` 
&emailTpl=`emailTpl`       [[- 'This is the name of your email template chunk' ]]
&emailTo=`your@email.com` 
&emailSubject=`[[++site_name]] Contact Form` 
&redirectTo=`24`           [[- 'This is the id of the thankyou page' ]]
&validate=`firstname:required, lastname:required, email:email:required` ]]
[[!+fi.validation_error_message:notempty=`<p>[[!+fi.validation_error_message]]</p>`]]


<form action="[[~[[*id]]]]" method="post">
<div class="container">
  <div class="row">
    <div class="form-group col-md-6">
      <label class="sr-only" for="firstname">First Name</label>
      <input type="text" class="form-control" id="firstname" name="firstname" placeholder="First Name" value="[[+fi.firstname]]">[[!+fi.error.firstname]]
    </div>
    <div class="form-group col-md-6">
      <label class="sr-only" for="lastname">Last Name</label>
      <input type="text" class="form-control" id="lastname" name="lastname" placeholder="Last Name" value="[[+fi.lastname]]">[[!+fi.error.lastname]]
    </div>
    <div class="form-group col-md-6">
      <label class="sr-only" for="email">Email address</label>
      <input type="email" class="form-control" id="email" name="email" placeholder="Email address" value="[[+fi.email]]">[[!+fi.error.email]]
    </div>
    <div class="form-group col-md-6">
      <label class="sr-only" for="phone">Phone Number</label>
      <input type="tel" class="form-control" id="phone" name="phone" placeholder="Phone Number" value="[[+fi.phone]]">
    </div>
</div>
<div class="row">
    <div class="form-group col-md-12">
      <label class="sr-only" for="comment">Your Enquiry</label>
      <textarea class="form-control" id="comment" name="comment" placeholder="Your Enquiry">[[+fi.comment]]</textarea>
    </div>
</div>
<div class="row">
    <div class="form-group col-md-4">
      <button type="submit" id="submit" class="btn btn-primary">Submit</button>
    </div>
  </div>
</div>
</form>

2) Create a chunk for the form email response:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<style type="text/css">
    body{font-family:Arial, Helvetica, sans-serif;font-size:12px;}
    h1{font-size:18px;}
    h2{font-size:16px;color:#666;}
    .form-row{background-color:#eee;}
</style>
</head>
<body>
  <h1>[[++site_name]] Contact Form</h1>
  <table border="0" cellspacing="0" cellpadding="5" width="620">  
    <tr>
      <td width="30%"><strong>First Name</strong></td>
      <td width="70%">[[+firstname]]</td>
    </tr>
    <tr>
      <td class="form-row"><strong>Last Name</strong></td>
      <td class="form-row">[[+lastname]]</td>
    </tr>
    <tr>
      <td><strong>Email</strong></td>
      <td>[[+email]]</td>
    </tr>
    <tr>
      <td class="form-row"><strong>Phone Number</strong></td>
      <td class="form-row">[[+phone]]</td>
    </tr>
    <tr>
      <td><strong>Enquiry</strong></td>
      <td>[[+comment]]</td>
    </tr>
  </table>
</body>
</html>

3) Create your contact page (resource) and add the modx call for the contact form chunk in the content area


[[$contact_form]]

Get In Touch

Have a question? or perhaps spotted a problem?
Maybe you have something you would like to add. Drop us a line anytime!