Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 22.04.2015, 20:56
Аспирант
Отправить личное сообщение для tiundv Посмотреть профиль Найти все сообщения от tiundv
 
Регистрация: 22.04.2015
Сообщений: 32

window.history.pushState(null, null, url); //с какой целью не понятно
Это смена адреса поле адреса браузера..
Ответить с цитированием
  #12 (permalink)  
Старый 22.04.2015, 20:59
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Это смена адреса поле адреса браузера..

Зачем это при отправке формы методом POST и асинхронным способом?
Ответить с цитированием
  #13 (permalink)  
Старый 22.04.2015, 21:05
Аспирант
Отправить личное сообщение для tiundv Посмотреть профиль Найти все сообщения от tiundv
 
Регистрация: 22.04.2015
Сообщений: 32

Та функция которую вы изменили отвечает за подгрузку контента из меню по url-ам.
А это window.history.pushState(null, null, url); записывает в память браузера урлы страниц чтоб можно было туда обратно гулять по страницам.. у меня статичная только одна страница ...шаблон с меню...остальное все подгружается динамически...
Самое прикольно что гет отрабатывает отлично а вот пост никак немогу освоить...Может есть другие варианты отправки форм из подгруженного контента?

Последний раз редактировалось tiundv, 22.04.2015 в 21:09.
Ответить с цитированием
  #14 (permalink)  
Старый 22.04.2015, 21:15
Аспирант
Отправить личное сообщение для tiundv Посмотреть профиль Найти все сообщения от tiundv
 
Регистрация: 22.04.2015
Сообщений: 32

Вот мой весь код
$(document).ready(function() {
[COLOR="red"]//здесь отслеживаею кнопки меню и отправляю методом гет url[/COLOR]
            $('.mod1').click(function() {
                var url = $(this).attr('href');
                $.ajax({
                    type: 'GET',
                    url:  '?ajax=' + url,
                    success: function(data){
                        $('#content').html(data);
                    }
                });
                if(url != window.location){
                  window.history.pushState(null, null, url);
                }
                return false;
            });
[COLOR="red"]//здесь то что обсуждаем[/COLOR]
            $('#content').on('submit','#crform',function(){
                $.ajax({
                    type: 'POST',
                    url:  this.action,
                    dataType: "html",
                    data: $(this).serialize(),
                    success: function(data){
                        $('#content').html(data);
                    }
                });
                return false;
            });
[COLOR="red"]//здесь отслеживаем кнопки из подгр. Контента и отпр. Гетом[/COLOR]
            $('#content').on('click','.mod2',function(){
                var url = $(this).attr('href');
                $.ajax({
                    type: 'GET',
                    url:  '?ajax=' + url,
                    success: function(data){
                        $('#content').html(data);
                    }
                });
                if(url != window.location){
                  window.history.pushState(null, null, url);
                }
                return false;
            });
[COLOR="red"]//это отдельная история нестоит внимания...[/COLOR]
            $('#content').on('click','.rem1',function(){
                var url = $(this).attr('href');
                $.ajax({
                    type: 'GET',
                    url:  '?ajax=' + url,
                    success: function(data){
                        $('#content').html(data);
                    }
                });
                return false;
            });
            
            $(window).bind('popstate', function() {
                $.ajax({
                    url:     '?ajax='  + location.search,
                    success: function(data) {
                        $('#content').html(data);
                    }
                });
            });
        });

Последний раз редактировалось tiundv, 22.04.2015 в 21:18.
Ответить с цитированием
  #15 (permalink)  
Старый 22.04.2015, 21:20
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Понятно, то есть однострочник, а форма вызывается в каком-то разделе ее.

Вариант второй, который я показал, в любом случае будет работать, так как форме "навешивается" обработчик сразу при ее добавлении на страницу. То есть отправка будет гарантировано, это можно в отладчике проследить. А если не получается с ответом, то может быть только одна причина - сервер: а) неверный url запроса, б) неверный сценарий приема формы, и) и т.д...
Ответить с цитированием
  #16 (permalink)  
Старый 22.04.2015, 21:23
Аспирант
Отправить личное сообщение для tiundv Посмотреть профиль Найти все сообщения от tiundv
 
Регистрация: 22.04.2015
Сообщений: 32

Попробую и отпишусь..
Ответить с цитированием
  #17 (permalink)  
Старый 22.04.2015, 21:29
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Пробуйте, только здесь:
$('#content').html(data)
    .find('form')//заменить на .find('#postform')

ведь однострочник, и если '#content' общий родитель и форма не одна на странице, то этот обработчик будет установлен на все формы.
Ответить с цитированием
  #18 (permalink)  
Старый 22.04.2015, 21:47
Аспирант
Отправить личное сообщение для tiundv Посмотреть профиль Найти все сообщения от tiundv
 
Регистрация: 22.04.2015
Сообщений: 32

Так как вы написали все работает но происходит перезагрузка всей страницы а не только контента..
Ответить с цитированием
  #19 (permalink)  
Старый 22.04.2015, 22:00
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Значит форма отправляется, а не должна - return false;
Чего то не то делается.
Ответить с цитированием
  #20 (permalink)  
Старый 22.04.2015, 22:04
Аспирант
Отправить личное сообщение для tiundv Посмотреть профиль Найти все сообщения от tiundv
 
Регистрация: 22.04.2015
Сообщений: 32

Сори...Были ошибки...После исправления Нихрена не работает
Сейчас код такой...пробывал менять 'form' итог тот же
$(document).ready(function() {
            $('.mod1').click(function() {
                var url = $(this).attr('href');
                $.ajax({
                    type: 'GET',
                    url:  '?ajax=' + url,
                    success: function(data){
                        $('#content').html(data);
                    }
                });
                if(url != window.location){
                  window.history.pushState(null, null, url);
                }
                return false;
            });
            
            $('#content').on('click','.mod2',function(){
                var url = $(this).attr('href');
                $.ajax({
                    type: 'GET',
                    url:  '?ajax=' + url,
                    success: function(data){
                        $('#content').html(data).find('#postform').submit(function(){
                           $.ajax({
                              type: 'POST',
                              url: this.action,
                              dataType: "html",
                              data: $(this).serialize(),
                              success: function(data2){
                                 $('#content').html(data2);
                              }
                           });
                        });
                    }
                });
                if(url != window.location){
                  window.history.pushState(null, null, url);
                }
                return false;
            });
            $('#content').on('click','.rem1',function(){
                var url = $(this).attr('href');
                $.ajax({
                    type: 'GET',
                    url:  '?ajax=' + url,
                    success: function(data){
                        $('#content').html(data);
                    }
                });
                return false;
            });
            
            $(window).bind('popstate', function() {
                $.ajax({
                    url:     '?ajax='  + location.search,
                    success: function(data) {
                        $('#content').html(data);
                    }
                });
            });
        });
..
Если обновляю страницу то пост приходит..если через меню подгружаю страницу то пост не приходит

Последний раз редактировалось tiundv, 22.04.2015 в 22:18.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь в создании формы Timothy Общие вопросы Javascript 3 16.04.2015 18:04
Обработка формы перед отправкой KlausKater Общие вопросы Javascript 16 24.04.2014 18:11
Проверка авторизации перед отправкой формы Hapson AJAX и COMET 1 17.03.2014 11:58
Нужна помощь по javascript darklend Общие вопросы Javascript 0 12.01.2014 23:33
нужна помощь dominosoko Серверные языки и технологии 4 14.03.2010 02:17