Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.08.2017, 21:46
Аспирант
Отправить личное сообщение для -=Женька=- Посмотреть профиль Найти все сообщения от -=Женька=-
 
Регистрация: 27.06.2014
Сообщений: 33

ajax и переменная
Код раньше работал отлично но потом я решил в ajax добавить "&mestor=" + mestor,
и все перестало работать и не могу понять почему.
Подскажите пожалуйста

var btn = document.querySelectorAll("a");
for (var i=0;i<btn.length;i++){
    btn[i].addEventListener("click", function() {
        var mesta = this.getAttribute('data');
        var mestor = 0;
        switch (mesta) {
            case "1":
                var mestor = "Шапка сайта";
             break;
            default:
                var mestor = "Не знаю";
        }
    })
}
 
$("#contactForm").validator().on("submit", function (event) {
    if (event.isDefaultPrevented()) {
        // handle the invalid form...
        formError();
        submitMSG(false, "Пожалуйста заполните все поля");
    } else { 
        // everything looks good!
        event.preventDefault();
        submitForm();
    }
});
function submitForm(){
    // Initiate Variables With Form Content
    var name = $("#name").val();
    var email = $("#email").val();
    var phone = $("#phone").val();
 
    $.ajax({
        type: "POST",
        url: "php/form-process.php",
        data: "name=" + name + "&email=" + email + "&phone=" + phone + "&mestor=" + mestor,
        success : function(text){
            if (text == "success"){
                formSuccess();
            } else {
                formError();
                submitMSG(false,text);
            }
        }
    });
}
 
function formSuccess(){
    $("#contactForm")[0].reset();
    submitMSG(true, "Ваша заявка отправлена ! С вами свяжется наш менеджер")
}
 
function formError(){
    $("#contactForm").removeClass().addClass('shake animated').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function(){
        $(this).removeClass();
    });
}
 
function submitMSG(valid, msg){
    if(valid){
        var msgClasses = "h3 text-center tada animated text-success";
    } else {
        var msgClasses = "h3 text-center text-danger";
    }
    $("#msgSubmit").removeClass().addClass(msgClasses).text(msg);
}
Ответить с цитированием
  #2 (permalink)  
Старый 18.08.2017, 21:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,080

-=Женька=-,
откуда возникнет mestor в строке 36?
Ответить с цитированием
  #3 (permalink)  
Старый 18.08.2017, 21:58
Аспирант
Отправить личное сообщение для -=Женька=- Посмотреть профиль Найти все сообщения от -=Женька=-
 
Регистрация: 27.06.2014
Сообщений: 33

рони,
switch (mesta) { и 8 строка
Ответить с цитированием
  #4 (permalink)  
Старый 18.08.2017, 22:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,080

-=Женька=-,
она в клике и останется строка 3
Ответить с цитированием
  #5 (permalink)  
Старый 18.08.2017, 22:12
Аспирант
Отправить личное сообщение для -=Женька=- Посмотреть профиль Найти все сообщения от -=Женька=-
 
Регистрация: 27.06.2014
Сообщений: 33

рони,
Я не на столько хорош в js )
поставил перед ajax mestor = 1; и все заработало но передало 1 : )
Соответственно как я понимаю переменная попадает в функцию пустой.
Ответить с цитированием
  #6 (permalink)  
Старый 18.08.2017, 22:14
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,080

-=Женька=-,
var btn = document.querySelectorAll("a");
var mestor = 0;
for (var i=0;i<btn.length;i++){
    btn[i].addEventListener("click", function() {
        var mesta = this.getAttribute('data');

        switch (mesta) {
            case "1":
                mestor = "Шапка сайта";
             break;
            default:
                mestor = "Не знаю";
        }
    })
}
Ответить с цитированием
  #7 (permalink)  
Старый 18.08.2017, 22:18
Аспирант
Отправить личное сообщение для -=Женька=- Посмотреть профиль Найти все сообщения от -=Женька=-
 
Регистрация: 27.06.2014
Сообщений: 33

рони,
Да но с switch теперь ничего не передается

в php проблемы нет так когда перед ajax написал mestor = 1; единица передалась без проблем
Ответить с цитированием
  #8 (permalink)  
Старый 18.08.2017, 22:23
Аспирант
Отправить личное сообщение для -=Женька=- Посмотреть профиль Найти все сообщения от -=Женька=-
 
Регистрация: 27.06.2014
Сообщений: 33

рони,
Может проблема в клиентской части еще ?
Как работает чудо механизм.
На странице есть 5-10 кнопок и все ведут на модальное окно с одной формой и мне нужно знать на какую кнопку нажал пользователь что-бы попасть на форму и заполнить её
Ответить с цитированием
  #9 (permalink)  
Старый 18.08.2017, 22:23
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,080

-=Женька=-,
не понимаю что вы хотите сделать, всё что мог выше.
Ответить с цитированием
  #10 (permalink)  
Старый 18.08.2017, 22:31
Аспирант
Отправить личное сообщение для -=Женька=- Посмотреть профиль Найти все сообщения от -=Женька=-
 
Регистрация: 27.06.2014
Сообщений: 33

рони,
https://codepen.io/lomakin/pen/YxeLPp
При нажатии всегда открывается одна и та же форма. Мне нужно что-бы при отправки данных с формы еще отправлялась переменная mestor и я видел с какой части сайта начали заполнять форму
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка формы после ajax проверки ShutTap Общие вопросы Javascript 15 08.04.2016 11:46
Переменная из php в ajax DuMBaSSn1 AJAX и COMET 6 09.10.2011 15:38
Ajax таблица gofkane Работа 1 26.09.2011 18:26
Ajax таблица gofkane Работа 0 25.09.2011 11:53
Ajax разбор метода mycoding jQuery 14 21.05.2010 10:57