Здравствуйте, помогите разобраться с XMLHttpRequest(). У меня есть форма обратной связи, скрипт проверяет на наличие пустых полей, и если их нет, должен отправлять данные. Потом эти данные мне надо обработать пхп-скриптом, который будет посылать на мыло данные. Но в пхп-скрипт данные не приходят. я так понял что причина в XMLHttpRequest(), хотя не уверен. Простите за возможно глупый вопрос, но очень надо. Заранее спасибо
Вот хтмл-форма и скрипт
<section id="feedback">
<article>
<h3>Связаться с нами</h3>
<p>Заполните пожалуйста ниже приведенную форму, что бы связаться с нами.</p>
<div class="form">
<div class="fields">
<input type="text" name="name" placeholder="имя">
<input type="text" name="email" placeholder="email">
<input type="text" name="tel" placeholder="+3 80 ...">
</div>
<div class="area">
<textarea name="message" placeholder="сообщение"></textarea>
</div>
</div>
<a class="link" id="send">Отправить</a>
</article>
</section>
// ====================
// FEEDBACK
// ====================
function Feedback() {
// -----------------
// Data
// -----------------
var F = this;
F.animation = [
'webkitAnimationEnd',
'animationend',
'MSAnimationEnd',
'oAnimationEnd',
'oanimationend'
];
// -----------------
// Utility
// -----------------
// request data string
F.Get = function() {
return data = [
F.field[0].value,
F.field[1].value,
F.field[2].value,
F.field[3].value,
];
}
// check for validation
F.Check = function(e, i) {
switch(i) {
case 0: return !/[#%&*:<>?/{|}0-9]/.test(e.value) && e.value.length > 0;
case 1: return /\S+@\S+\.\S+/.test(e.value);
case 2: return (e.value) ? /^\d+$/.test(e.value) && e.value.length > 8 : true;
}
}
// not valid field
F.Error = function(e) {
e.className = 'error';
}
// -----------------
// Handlers
// -----------------
F.End = function() {
alert('сообщение отправлено');
for (var i = 0; i < F.field.length; i++) {
F.field[i].value = '';
}
}
// remove error class
F.Clear = function() {
this.className = '';
}
// send data to server
F.Send = function() {
var xhr = new XMLHttpRequest();
var data = F.Get();
xhr.open('POST', 'feedback', true);
xhr.send(data);
alert(xhr.responseText);
F.End();
//xhr.onreadystatechange = function () {if (xhr.readyState == 4 && xhr.status == 200) {}}
}
// send button handler
F.Start = function() {
var data = [
F.Check(F.field[0], 0),
F.Check(F.field[1], 1),
F.Check(F.field[2], 2),
F.Check(F.field[3], 0)
]
for (var i = 0; i < data.length; i++) {
if (!data[i]) {
F.Error(F.field[i]);
return
}
}
F.Send();
}
// -----------------
// Init
// -----------------
// binding form
F.Bind = function(a) {
for (var j = 0; j < F.field.length; j++) {
for (var k = 0; k < F.animation.length; k++) {
F.field[j].addEventListener(F.animation[k], F.Clear, false);
}
}
a.addEventListener('click', F.Start, false);
}
// initialization
F.Init = function() {
var a = document.getElementById('send');
var f = document.getElementById('feedback');
var i = f.getElementsByTagName('input');
var t = f.getElementsByTagName('textarea');
F.field = [i[0], i[1], i[2], t[0]];
F.Bind(a);
}
}