{# <form id="" class="{{class}} fade" action="{{ path }}" method="{{method}}" enctype="multipart/form-data"> #}
{% for item in snippets %}
{% for form in item.form %}
{% for row in form.field %}
{{ include('pages/blocks/form/' ~ row.type ~ '.html.twig', {
content : row,
index : loop.index
}) }}
{% endfor %}
{% endfor %}
{% endfor %}
<input type="hidden" name="recaptchakey" value="6LfHlxIrAAAAAHU0zZg_LH6kRtAYpqWqv_gzVdsU">
<input id="recaptchaResponse" type="hidden" name="g-recaptcha-response"/>
<input type="hidden" name="referer" value="{{app.request.uri}}"/>
<input type="hidden" name="email-from" value="{{snippets ? snippets[0].submition_from : '' }}"/>
<input type="hidden" name="email-to" value="{{snippets ? snippets[0].submition_to : '' }}"/>
<input type="hidden" name="email-subject" value="{{snippets ? snippets[0].submition_subject : '' }}"/>
{# </form> #}
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<script>
$(document).ready(function() {
var recaptchaKey = $('input[name="recaptchakey"]').val();
var successMessage = `{% if content.snippets %}{{content.snippets[0].submition_message|raw}}{% endif %}`;
var errorMessage = `{% if content.snippets %}{{content.snippets[0].error_message|raw}}{% endif %}`;
if (recaptchaKey) {
grecaptcha.ready(function() {
grecaptcha.execute(recaptchaKey, {
action: "form_post"
}).then(function(token) {
let recaptchaResponse = document.getElementById("recaptchaResponse");
recaptchaResponse.value = token;
// Submit the form via AJAX
$('#message-response').on('submit', function(e) {
e.preventDefault();
$.ajax({
type: 'POST',
url: '/mail/send',
data: $(this).serialize(),
success: function(response) {
let alertBox = $('#alert');
let alertMessage = $('#alert-message');
// Reset classes and hide the alert box initially
alertBox.removeClass('success error').addClass('hidden');
if (response.redirect) {
window.location.href = response.redirect;
} else if (response.success) {
alertBox.addClass('success').removeClass('hidden');
var displayMessage = (successMessage && successMessage != '') ? successMessage : response.success;
alertBox.html(displayMessage);
// Clear the form inputs
$('#message-response')[0].reset();
} else if (response.error) {
alertBox.addClass('error').removeClass('hidden');
var displayError = (errorMessage && errorMessage != '') ? errorMessage : response.error;
alertBox.html(displayError);
}
},
error: function(error) {
console.error('Error:', error);
let alertBox = $('#alert');
let alertMessage = $('#alert-message');
alertBox.removeClass('success').addClass('error').removeClass('hidden');
var displayError = (errorMessage && errorMessage != '') ? errorMessage : response.error;
alertBox.html(displayError);
}
});
});
});
});
} else {
console.error('reCAPTCHA key not found');
}
});
</script>
<script src="https://www.google.com/recaptcha/api.js?render=6LfHlxIrAAAAAHU0zZg_LH6kRtAYpqWqv_gzVdsU"></script>