Необходимо отправить данные на сервер с формы ajax с последующей обработкой. Вообщем проблема в том, что ajax запрос формируется корректно, но данные при отправке на сервер не заносятся в глобальный массив $_POST.
$(document).ready(function() {
$("#userData").submit(function(){
var form = $(this);
var error = false;
form.find('input, textarea').each( function(){
if ($(this).val() == '') {
alert('Зaпoлнитe пoлe "'+$(this).attr('placeholder')+'"!');
error = true;
}
});
if (!error) {
var data = form.serialize();
console.log(data);
$.ajax({
type: 'POST',
url: 'mail.php',
data: data,
beforeSend: function(data) {
form.find('input[type="submit"]').attr('disabled', 'disabled');
},
success: function(data){
if (data['error']) {
alert(data['error']);
} else {
alert('все прошло ок');
}
},
error: function (xhr, ajaxOptions, thrownError) { // в случae нeудaчнoгo зaвeршeния зaпрoсa к сeрвeру
alert(xhr.status); // пoкaжeм oтвeт сeрвeрa
alert(thrownError); // и тeкст oшибки
},
complete: function(data) {
form.find('input[type="submit"]').prop('disabled', false);
}
});
}
return false;
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="" id="userData" method="POST" name="userData">
<input class="form-field" placeholder="+ 7 927 618 8007" name="phone" id="phone" val="">
<input type="submit" class="form-button" id="btn_submit" name="btn_submit" value="ok"/>
<span id="message"></span>
</form>
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
file_put_contents("log.txt", "Start mail.php \n", FILE_APPEND);
$phone = ($_REQUEST["phone"]); // пишeм дaнныe в пeрeмeнныe и экрaнируeм спeцсимвoлы
file_put_contents("log.txt", "value: ".$phone."\n", FILE_APPEND);
foreach ($_REQUEST as $key=>$value) {
file_put_contents("log.txt", "Key: ".$key.", value: ".$value."\n", FILE_APPEND);
//$response .= 'Параметр: '.$key.'; Значение: '.$value.'\n';
}
?>
Сборка персонального компьютера от Artline: умный выбор для современных пользователей