Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.07.2014, 16:23
Новичок на форуме
Отправить личное сообщение для sinefighter Посмотреть профиль Найти все сообщения от sinefighter
 
Регистрация: 05.07.2014
Сообщений: 3

не отправляются данные XMLHttpRequest()
Здравствуйте, помогите разобраться с 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);
    }
}
Ответить с цитированием
  #2 (permalink)  
Старый 05.07.2014, 16:54
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

sinefighter, хватит дублировать темы! "Ждите ответа".
Ответить с цитированием
  #3 (permalink)  
Старый 05.07.2014, 18:05
Новичок на форуме
Отправить личное сообщение для sinefighter Посмотреть профиль Найти все сообщения от sinefighter
 
Регистрация: 05.07.2014
Сообщений: 3

Прошу прощения, просто не знал куда лучше запостить.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не отправляются данные XMLHttpRequest() sinefighter AJAX и COMET 1 07.07.2014 08:30
WYMeditor: не отправляются данные на сервер Ticksy jQuery 0 04.01.2011 21:45
Не совсем обычный фрейм и выезжающий текст при наводе на картинку. amaz245 Элементы интерфейса 35 25.12.2010 17:29
Отправить данные с контейнера (XMLHttpRequest) vladikas Библиотеки/Тулкиты/Фреймворки 7 26.11.2010 17:47
Не отправляются на сервер данные из клонированных полей Dark jQuery 1 02.04.2010 19:53