Я создал базовую форму представления с помощью бесплатной формы плагина выражения engine. С точки зрения CMS мои данные передаются в EE CMS. Однако после того, как я представил свои данные, а не получаю сообщение об успешном завершении, я получаю следующее сообщение в моей форме object object
. <div id="form-messages" class="success">[object Object]</div>
JQuery AJAX форма отправки error
Я предполагаю, что это имеет какое-то отношение к моему jquery. Поскольку функция работала, когда я проверял представление через php.
Ниже приведен фрагмент моего кода.
var form = $('#ajax-contact');
var formMessages = $('#form-messages');
$(form).submit(function(e) {
e.preventDefault();
var formData = $(form).serialize();
// Submit the form using AJAX.
$.ajax({
type: 'POST',
url: $(form).attr('action'),
data: formData
})
.done(function(response) {
// formMessages div has the 'success' class.
$(formMessages).removeClass('error');
$(formMessages).addClass('success');
// Set the message text.
$(formMessages).text(response);
// Clear the form.
$('#name').val('');
$('#email').val('');
})
.fail(function(data) {
// Make sure that the formMessages div has the 'error' class.
$(formMessages).removeClass('success');
$(formMessages).addClass('error');
// Set the message text.
if (data.responseText !== '') {
$(formMessages).text(data.responseText);
} else {
$(formMessages).text('Oops! An error occured and your message could not be sent.');
}
});
})
HTML
<div id="form-messages" class="success"></div>
exp:freeform:form
form_id="1"
admin_notify="[email protected]"
form:class="main-contact submit-fade ajax-form"
form:id="ajax-contact"
}
<ul class="small-block-grid-2 medium-block-grid-2 hide-form">
<li>
<label for="name">Name</label>
{freeform:field:first_name
attr:class="form-control"
attr:placeholder="First Name"
attr:class="required"
}
</li>
<li>
<label for="email">Email</label>
{freeform:field:email
attr:class="form-control"
attr:placeholder="Email"
attr:class="required"
}
</li>
</ul>
<input type="submit" class="btn btn-success">
{/exp:freeform:form}
Является ли контроллер возвратом JSON? Похоже, что jQuery анализирует JSON, поэтому 'response' - это объект, а не строка. – Barmar
Что показывает 'console.log (response)' show? – Barmar
Объект {success: true, entry_id: 5, form_id: "1", return: "http: //mysite/index.php/sandbox/freeform", return_url: "http: //mysiteindex.php/sandbox/freeform" } – NewBoy