Помогите разобрать с кодом отправки с формы с ajax на php
Вот код Нужно: чтобы переменные с формы с помощью ajax "Переходили" в php там обрабатывались, если что-то не так то выдавали ошибку прям в реальном времени( без перенаправлений куда либо), а если все хорошо, то переправить на страницу спасибо за заказ Подскажите пожалуйста, буду ооочень благодарен :)
<form id="form162657483" name="form162657483" role="form"
method='POST' data-formactiontype="0" data-inputbox=".t-input-group" class="t-form js-form-proccess t-form_inputs-total_2 "
data-success-callback="t718_onSuccess">
<!-- NO ONE SERVICES CONNECTED -->
<div class="js-successbox t-form__successbox t-text t-text_md" style="display:none;">
</div>
<div class="t-form__inputsbox">
<div class="t-input-group t-input-group_nm" data-input-lid="1496238250184">
<div class="t-input-title t-descr t-descr_md" data-redactor-toolbar="no"
field="li_title__1496238250184" style="font-weight:400;">
Ваше имя
</div>
<div class="t-input-block">
<input id="12345678" type="text" name="name" class="t-input js-tilda-rule " required
pattern="[А-Яа-яЁё]{2,}" title="Имя может содежжать только русские буквы и больше 2"
placeholder="Ваше имя" data-tilda-req="1" data-tilda-rule="name" style="border:2px solid #4a4a4a;" >
<div class="t-input-error">
</div>
<div style="font-size: 1.2em; float:left; color: red; width:100%; text-align: right;" id="massageShow1"></div>
</div>
</div>
<div class="t-input-group t-input-group_ph" data-input-lid="1496238259342">
<div class="t-input-title t-descr t-descr_md" data-redactor-toolbar="no"
field="li_title__1496238259342" style="font-weight:400;">
Ваш телефон
</div>
<div class="t-input-block">
<input type="tel" id="123456789" name="phone" class="t-input js-tilda-rule " required
placeholder="7 (999)-999-99-99" data-tilda-req="1" data-tilda-rule="phone"
style=" border:2px solid #4a4a4a; " onkeyup="this.value = this.value.replace (/\D/, '')">
<div class="t-input-error">
</div>
<div style="font-size: 1.2em; float:left; color: red; width:100%; text-align: right;" id="massageShow2"></div>
</div>
</div>
<div id="result_form" style="color: red; "></div>
<div class="t-form__submit">
<button id="btn" type="submit" class="t-submit" style="color:#000000;background-color:#ffd014;border-radius:30px; -moz-border-radius:30px; -webkit-border-radius:30px;">
Оставить данные
</button>
</div>
</div>
</form>
javascript
$(document).ready(function() {
$('#btn').click(function(e){
e.preventDefault();
$('#massageShow1').hide();
$('#massageShow2').hide();
// получение данных из полей
var name = $('#12345678').serialize();
var phone = $('#123456789').serialize();
$.ajax({
// метод отправки
type: "POST",
// путь до скрипта-обработчика
url: "call6.php",
// какие данные будут переданы
data: name, phone,
// тип передачи данных
dataType: "json",
// действие, при ответе с сервера
success: function(data){
// в случае, когда пришло success. Отработало без ошибок
if(data.result == 'success'){
alert('форма корректно заполнена');
// в случае ошибок в форме
}else{
// перебираем массив с ошибками
for(var massageShow2 in data.text_error){
/* // выводим текст ошибок
$('#'+errorField+'_error').html(data.text_error[errorField]);
// показываем текст ошибок
$('#'+errorField+'_error').show();
// обводим инпуты красным цветом
$('#'+errorField).addClass('error_input');
*/
$('#'+ massageShow2).html(data.text_error[massageShow2]);
$('#'+ massageShow2).show();
}
}
}
});
// останавливаем сабмит, чтоб не перезагружалась страница
return false;
});
});
php
<?php
function validate_russian_phone_number($tel)
{
$tel = trim((string)$tel);
if (!$tel) return false;
$tel = preg_replace('#[^0-9+]+#uis', '', $tel);
if (!preg_match('#^(?:\\+?7|8|)(.*?)$#uis', $tel, $m)) return false;
$tel = '+7' . preg_replace('#[^0-9]+#uis', '', $m[1]);
if (!preg_match('#^\\+7[0-9]{10}$#uis', $tel, $m)) return false;
return $tel;
}
$name = strip_tags(htmlentities($_POST['name']));
$phone = strip_tags(htmlentities($_POST['phone']));
$name = trim($name);
$phone = trim($phone);
$errors = array();
//Проверка на существования
if( $name == "" || $phone == "" || !isset($name) || !isset($phone)){
$errors[$pust] = "Пустое значение переменых";
}
else if ( $name == $phone){
$errors[$ravn] = "Они не могут быть равны!!!";
}
if ( validate_russian_phone_number($phone) == false ){
$errors = "Валидация Вашего номера не прошла. Повторите попытку";
$useragent = $_SERVER['HTTP_USER_AGENT']. ' ';
$ip = $_SERVER['REMOTE_ADDR']. ' ';
$D = fopen('data_rom_ero.txt', 'at');
fwrite($D, " ".$useragent. "\n");
fwrite($D, " ".$ip. "\n");
fwrite($D, " ".$name. "\n");
fwrite($D, " ".$phone. "\n");
fclose($D);
$errors[$val] = "Они не могут быть равны!!!";
}
else {
$useragent = $_SERVER['HTTP_USER_AGENT']. ' ';
$ip = $_SERVER['REMOTE_ADDR']. ' ';
$D = fopen('data_rom_valid.txt', 'at');
fwrite($D, " ".$useragent. "\n");
fwrite($D, " ".$ip. "\n");
fwrite($D, " ".$name. "\n");
fwrite($D, " ".$phone. "\n");
fclose($D);
$email = "[email protected], [email protected]"; // E-mail куда отправлять заявки.
$tema = "Важно! Заявка с Яндекс.Директ Важно!";
$message = "Имя клиента: " .$name."<br>";
$message .= "Телефон клиента: " .validate_russian_phone_number($phone)."<br>";
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
mail($email, $tema, $message,$headers);
// страничка спаибо
include_once("Thanky.html");
}
if(empty($errors)){
echo json_encode(array('result' => 'success'));
}
else {
echo json_encode(array('result' => 'error', 'text_error' => $errors));
}
?>
```
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
// получение данных из полей
var name = $('input[name="name"]').val();
var phone = $('input[name="phone"]').val();
$.ajax({
// метод отправки
type: "POST",
// путь до скрипта-обработчика
url: "call6.php",
// какие данные будут переданы
data: {name:name, phone:phone},
...