У меня проблема, когда я отправляю контактную форму через Ajax в скрипт PHP. Раньше я использовал функцию jQuery / Ajax, а также скрипт контакта, однако в этом случае процесс выполняется до запроса ajax, а затем возвращает ошибку: пустая строка.
$(document).ready(function(){
jQuery("#sendmail").click(function(){
var name = $("#name").val();
var phone = $("#phone").val();
var email = $("#email").val();
var text = $("#message").val();
//var datastr ='name=' + name + '&mail=' + mail + '&subject=' + subject + '&text=' + text;
var datastr ='name=' + name + '&phone=' + phone + '&email=' + email + '&text=' + text;
$("#form-div").css("float", "left");
$("#form-div").html("Thank you for contacting Stillframe Photography.
Please wait for just a few moments while your enquiry is being sent.
");
$("#form-div").fadeIn("slow");
alert(datastr);
jQuery.ajax({
type: "POST",
url: "contact.script.php",
data: datastr,
success: function(html){
$("#response").fadeIn("slow");
$("#response").html(html);
//setTimeout('$("#response").fadeOut("slow")',2000);
}
,error: function (XMLHttpRequest, textStatus, errorThrown) {
$("#response").html('there was an error');
console.log('error thrown');
console.log(errorThrown);
}
});
});
});
Вы можете увидеть работающую страницу по адресу http://www.stillframe.com.au/test.php , и вы можете увидеть форму без носителя страницы по той же ссылке выше, но test2.php
Я также добавил скрипт без какого-либо другого jQuery на тот же URL, но test3.php, который отправляет непосредственно в PHP-скрипт контакта, чтобы подтвердить, что в этом скрипте нет ошибок.
РЕШЕНИЕ: Удален базовый тег href из заголовка, и теперь скрипт работает нормально.