I had a request to supply a sample HTML page that would send a subscriber’s email address to ColdFusion without reloading the page. So I figured I’d post it here for any others looking for a simple example. This method uses jQuery, AJAX and a ColdFusion component.
index.html or index.cfm
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div id="subscribeContainer">
<input type="email"><button type="button">Subscribe</button>
</div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
<script>
(function($) {
// bind the button with an event handler
$('#subscribeContainer button').click( function(e) {
// when button is pushed, POST data to remote ColdFusion component method
$.post(
'subscription.cfc',
{
method: 'subscribe',
email: $('#subscribeContainer input').val()
}
)
.done( function() {
// everything worked
$('#subscribeContainer').text('You have been subscribed.');
})
.fail( function() {
// something failed
$('
<span>There was an error subscribing.</span>').appendTo('#subscribeContainer');
}
);
});
})(jQuery);
</script>
</body>
</html>
subscription.cfc
component {
remote void function subscribe( required string email ) {
// call database insert method here
}
}