MichaelMcDonald
Posts: 640
|
Posted: 07/11/2014, 2:37 AM |
|
This is a seamless no refresh/no submit/no reload contact form that uses AJAX to validate your email, grab the variables, put them into URL parameters and POST them to your .php file to get them and runs the sendmail script in the background.
The Form your .html file....
<form role="form" id="contactform" method="post">
<div class="someclass">
<input name="name" type="text" class="form-control" id="name" placeholder="Your Name" maxlength="40" autocomplete="off">
</div>
<div class="someclass">
<input name="email" type="text" class="form-control" id="email" placeholder="Your Email" maxlength="80" autocomplete="off">
</div>
<div class="someclass">
<textarea name="message" class="form-control" id="message" placeholder="Your Message..." autocomplete="off"></textarea>
</div>
<div class="someclass"><button type="button" class="btn btn-primary" id="contactformButton_Send" onclick="sendemail();">Send</button></div>
<div class="someclass" type="text" class="form-control" id="error"></div>
</form>
Javascript
<script>
function sendemail(){
var w = document.forms["contactform"]["message"].value;
if (w == null || w == "") {
document.getElementById('error').innerHTML = "Your Message is required";
}
var x = document.forms["contactform"]["email"].value;
var atpos = x.indexOf("@");
var dotpos = x.lastIndexOf(".");
if (atpos< 1 || dotpos<atpos+2 || dotpos+2>=x.length) {
var email = 1;
document.getElementById('error').innerHTML = "A valid email address is required";
}
var y = document.forms["contactform"]["name"].value;
if (y == null || y == "") {
document.getElementById('error').innerHTML = "Your Name is required";
}
if((y != null && y != "") && (w != null && w != "") && (email != 1)){
document.getElementById('error').innerHTML = "";
var a = new XMLHttpRequest();
a.open("POST","sendemail.php?name=" + y + "&email=" + x + "&message=" + w);
a.onreadystatechange = function() {
if( a.readyState == 4) {
if( a.status == 200) {
document.getElementById('error').innerHTML = "Thank you. Your email was sent successfully.";
}
else alert("HTTP error "+a.status+" "+a.statusText);
}
}
a.send();
}
}
</script>
sendemail.php - separate file.
<?php
$name = $_GET ['name'];
$email = $_GET['email'];
$message = $_GET ['message'];
$message = "From: " . $name . " Message: ". $message;
$address = "destination@yourserver.com";
mail( $address, "Subject Title",$message, "From: $email" );
?>
_________________
Central Coast, NSW, Australia.
|