Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.08.2017, 19:12
Интересующийся
Отправить личное сообщение для ilyamaksimov Посмотреть профиль Найти все сообщения от ilyamaksimov
 
Регистрация: 15.06.2017
Сообщений: 22

Как отменить e.preventDefault();?
Всем привет!
Можно ли как то при условии когда if( typeof data == "undefined") отменить e.preventDefault();

Проблема такая: вначале форма была без проверки Ajax-ом, до этого проверял с помощью Php (перед отправкой запроса в БД) и при успешном добавлении данных в БД, производился редирект на новую страницу, и с помощью $_SESSION['res']

<?php if (isset($_SESSION['res'])){
    echo $_SESSION['res'];
    unset($_SESSION['res']);
}
?>

выводилось сообщение-"Данные успешно добавлены".

Сейчас при условии if( typeof data == "undefined") приходится делать редирект на нужную страницу с помощью js метода, но сообщение об успешном добавлении данных в бд не получается вывести

$('#form_new_request').submit(function (e) {
        e.preventDefault();
        $.ajax({
            url: "?views=new_application",
            type: "POST",
            dataType: "html",
            data: $('#form_new_request').serialize() ,
            success: function (res) {

                    $('.success-error').html(''); // удаляю html
                
                    

                    var element = $(res).find('#error');
                    var data = $(res).find('.success-error').html(); //если ответ  
                   
                    if(typeof data == "undefined") { 

                        window.location.href ='/index.php?views=all_application'; // вместо переадресации можно ли отменить  e.preventDefault();?
                    }else {
                        
                        $('.success-error').prepend(element); // вставляю результат сюда 

                    }
            }
        });

    });
Ответить с цитированием
  #2 (permalink)  
Старый 24.08.2017, 19:35
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от ilyamaksimov
но сообщение об успешном добавлении данных в бд не получается вывести
Это почему? Удалить диалог посредством $(res).find('#error'); и прочим, на json к примеру, и если нет ошибки, то "Данные успешно добавлены" и клиент может показать, после чего переход.
Ответить с цитированием
  #3 (permalink)  
Старый 24.08.2017, 19:41
Интересующийся
Отправить личное сообщение для ilyamaksimov Посмотреть профиль Найти все сообщения от ilyamaksimov
 
Регистрация: 15.06.2017
Сообщений: 22

Сообщение от laimas Посмотреть сообщение
Это почему? Удалить диалог посредством $(res).find('#error'); и прочим, на json к примеру, и если нет ошибки, то "Данные успешно добавлены" и клиент может показать, после чего переход.
Сообщение нужно показать на новой странице, на которую делаю переход

Если я каим-то образом отменю e.preventDefault() то страница сама сделает редирект (с помощью Php) и выведет сообщение

Последний раз редактировалось ilyamaksimov, 24.08.2017 в 19:48.
Ответить с цитированием
  #4 (permalink)  
Старый 24.08.2017, 19:46
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от ilyamaksimov
Сообщение нужно показать на новой странице, на которую делаю переход
На здоровье, показывайте, адрес перехода может содержать и GET параметр, по которому сервер поймет, что нужно сообщить "Привет, Вася". Какие проблемы?

e.preventDefault(); отменить нельзя, эта операция совершилась - форма не была отправлена естественным образом, если же можно было это и произвести, то это бы означало повторное отправление формы, вам это нужно? Вряд ли.

PS. Никто не запрещает использовать сессию и при асинхронном обмене, так что проблема надуманная.

Последний раз редактировалось laimas, 24.08.2017 в 19:52.
Ответить с цитированием
  #5 (permalink)  
Старый 24.08.2017, 19:53
Интересующийся
Отправить личное сообщение для ilyamaksimov Посмотреть профиль Найти все сообщения от ilyamaksimov
 
Регистрация: 15.06.2017
Сообщений: 22

Сообщение от laimas Посмотреть сообщение
На здоровье, показывайте, адрес перехода может содержать и GET параметр, по которому сервер поймет, что нужно сообщить "Привет, Вася". Какие проблемы?

e.preventDefault(); отменить нельзя, эта операция совершилась - форма не была отправлена естественным образом, если же можно было это и произвести, то это бы означало повторное отправление формы, вам это нужно? Вряд ли.

PS. Никто не запрещает использовать сессию и при асинхронном обмене, так что проблема надуманная.
блин про GET параметр я не подумал! Огромное спасибо, под вечер туплю.
Ответить с цитированием
  #6 (permalink)  
Старый 24.08.2017, 20:02
Интересующийся
Отправить личное сообщение для ilyamaksimov Посмотреть профиль Найти все сообщения от ilyamaksimov
 
Регистрация: 15.06.2017
Сообщений: 22

Сообщение от laimas Посмотреть сообщение
На здоровье, показывайте, адрес перехода может содержать и GET параметр, по которому сервер поймет, что нужно сообщить "Привет, Вася". Какие проблемы?

e.preventDefault(); отменить нельзя, эта операция совершилась - форма не была отправлена естественным образом, если же можно было это и произвести, то это бы означало повторное отправление формы, вам это нужно? Вряд ли.

PS. Никто не запрещает использовать сессию и при асинхронном обмене, так что проблема надуманная.
Хотя подумал сейчас, это сообщение будет висеть пока пользователь не обновит страницу (т.е. пока этот GET параметр будет висеть).
А с помощью сессий сообщение показывается один раз и исчезает
<?php if (isset($_SESSION['res'])){
    echo $_SESSION['res'];
    unset($_SESSION['res']);
}
?>
Ответить с цитированием
  #7 (permalink)  
Старый 24.08.2017, 20:07
Интересующийся
Отправить личное сообщение для ilyamaksimov Посмотреть профиль Найти все сообщения от ilyamaksimov
 
Регистрация: 15.06.2017
Сообщений: 22

У меня на той странице на которую делаю редирект форма с сортировкой, пагинация, и Get параметры просто добавляются в адресную строку и сообщение об успешном добавлении в базу данных будет висеть и глаза мозолить если его не убрать
Ответить с цитированием
  #8 (permalink)  
Старый 24.08.2017, 20:09
Интересующийся
Отправить личное сообщение для ilyamaksimov Посмотреть профиль Найти все сообщения от ilyamaksimov
 
Регистрация: 15.06.2017
Сообщений: 22

Сообщение от ilyamaksimov Посмотреть сообщение
PS. Никто не запрещает использовать сессию и при асинхронном обмене, так что проблема надуманная.
подскажи пожалуйста как использовать сессию при ajax ?
Ответить с цитированием
  #9 (permalink)  
Старый 24.08.2017, 20:25
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от ilyamaksimov
Хотя подумал сейчас, это сообщение будет висеть пока пользователь не обновит страницу
Сообщение от ilyamaksimov
А с помощью сессий сообщение показывается один раз и исчезает
Это разве не бред?
Ответить с цитированием
  #10 (permalink)  
Старый 25.08.2017, 10:18
Интересующийся
Отправить личное сообщение для ilyamaksimov Посмотреть профиль Найти все сообщения от ilyamaksimov
 
Регистрация: 15.06.2017
Сообщений: 22

Сообщение от laimas Посмотреть сообщение
Это разве не бред?
объясню как я тебя понял.

ты предлагаешь сделать переадресацию на страницу с добавлением гет параметра
window.location.href ='/index.php?views=all_application&result=saccess';


на странице (на которой переадресовываю) сделать проверку

if ($_GET['result']== 'saccess'){
echo "Сообщение об успешном добавлении данных в базу данных"
}


Проблема в том что у меня на этой странице пагинация + фильтры которые тоже работают через GET



и получается что пользователь будет видеть сообщение об "успешном добавлении данных в базу данных" пока не обновит страницу, а это в моем случае неудобно потому что он (пользователь) на этой странице может захотеть воспользоваться фильтрами (сообщение будет ему мозолить глаза)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как отменить редирект страницы daima Backbone.js 0 27.07.2014 21:20
Как отменить действие правой кнопки мыши? Dimaz Events/DOM/Window 2 20.07.2014 13:05
Мотоциклисты есть? l-liava-l Оффтопик 13 04.07.2014 13:35
Наверное, массивы 4ildren Общие вопросы Javascript 20 01.10.2011 10:39
Как отменить прокрутку при клике Alekson jQuery 1 30.03.2009 20:53