Существует контактная форма и кнопка отправки. (позже я попытаюсь выяснить, как отправить эти данные контактной формы по почте)Отправить ajax data serialize to php
В настоящее время мне нужно получить данные в php-скрипт .... Как переадресовать данные ajax json на php скрипт? Сейчас я просто хочу, чтобы отобразить с помощью эха-данные форм контакта, отправляемые через AJAX ...
Вот полный Javascript функции, которая вызывается, когда кнопка отправки нажато:
function modalForm(){
$('.enquiryForm form').submit(function(e){
e.preventDefault();
change_tock();
console.log("evo ga");
$('.enquiryForm .status').html('');
$('#singlePageBox .modal-footer').html('');
var eForm = $(this),
formData = {
action: eForm.attr('action'),
method: eForm.attr('method')
},
mandatoryFieldNames = 'c_phone,c_email'
;
mandatoryFieldNames = $.map(mandatoryFieldNames.split(','), $.trim);
var formFields = eForm.find('input[required], textarea[required]');
var emptyFields = 0;
formFields.each(function(i,v) {
var item = $(this)
;
if(!item.val()) {
if($.inArray(item.attr('name').trim() , mandatoryFieldNames) != -1) {
item.addClass('empty_field');
emptyFields++;
}
} else{
item.removeClass('empty_field');
}
});
if(emptyFields !== 0) return false;
globalDebug !== 0 && console.log(formData, eForm);
$.ajax({
type: 'post',//formData.method//,
dataType:'json',
url: 'slanje_poruke.php',//formData.action,
cache: false,
timeout: 50000,
data: eForm.serialize()+'&sent_from='+window.location.hostname
})
.success(function (jqXHR, textStatus){
$('.enquiryForm form').hide();
$('.enquiryForm .status').append('<div class="alert alert-success">'+jqXHR.responseText+'</div>');
$('#singlePageBox .modal-footer').html('<div class="alert alert-success">'+jqXHR.responseText+'</div>');
globalDebug !== 0 && console.log(jqXHR, textStatus);
}).done(function (result) {
globalDebug !== 0 && console.log(result);
})
.fail(function (jqXHR, textStatus) {
$('.enquiryForm .status').html('<div class="alert alert-error">Error: '+jqXHR.responseText+'</div>');
$('#singlePageBox .modal-footer').html('<div class="alert alert-error">Error: '+jqXHR.responseText+'</div>');
globalDebug !== 0 && console.log(jqXHR, textStatus);
})
;
return false;
});
return false;
}
а вот простое содержание PHP slanje_poruke.php файла:
<?php
$ref = $_POST['c_ref'];
$url = $_POST['c_url'];
$remotepagenum = $_POST['remotePageNumber'];
$name = $_POST['c_name'];
$email = $_POST['c_email'];
$phone = $_POST['c_phone'];
$message = $_POST['c_message'];
$sent_from = $_POST['sent_from'];
echo "<script type='text/javascript'>console.log(' ".$email." ');</script>";
?>
Теперь, когда я нажимаю кнопку отправки, ничего не происходит, появляется только сообщение журнала консоли («ево га»), который я поставил как испытание когда эта функция начинается ... но ничего не отображается f rom php-файл ....
Как заставить php-скрипт принимать данные, отправленные из ajax? Спасибо!
Почему вы считаете, что данные будут находиться в '$ _POST ['eForm']'? Вы должны получить '$ _POST [*]', где имя каждого введенного вами ввода в вашей форме (плюс одно дополнительное поле, которое вы добавляете к строке запроса) будет иметь место '*'. Просто попробуйте 'var_dump ($ _ POST);' чтобы увидеть, что действительно отправляется. –
теперь говорит: Uncaught TypeError: Не могу прочитать свойство responseText из null – Volkan
Я изменил файл php .... теперь, когда я нажимаю кнопку submit, я получаю два раза сообщение, написанное в console.log, и сообщение об ошибке в кнопке отправки. .. – Volkan