Javascript.RU

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

Сверьте внимательно то, что я написал, с тем, что у вас - отсутствие return false; в обработчике submit, а это значит отправка формы естественным способом с перегрузкой страницы.
Ответить с цитированием
  #22 (permalink)  
Старый 22.04.2015, 23:24
Аспирант
Отправить личное сообщение для tiundv Посмотреть профиль Найти все сообщения от tiundv
 
Регистрация: 22.04.2015
Сообщений: 32

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

Слушайте если мы вставляем обработчик в подгружаемый контент его разве ненадо обернуть в какую нибудь функцию или <script></script> ???
Ответить с цитированием
  #24 (permalink)  
Старый 23.04.2015, 00:12
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

<?
if($_GET['f']) exit('<form id="postform"><input name="as" value=15><button>Send</button></form>');
if($_POST) exit('Received: ' . http_build_query($_POST));
?>
<!DOCTYPE HTML> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<script>
$(function() {
    $('#content').on('click','.mod2',function(e){
        var url = this.href;
        $.ajax({
            type: 'GET',
            url:  url,
            success: function(data){
                $('#content').html(data)
                         .find('#postform')
                         .submit(function() {
                             $.ajax({
                                type: 'POST',
                                url:  location,
                                dataType: "html",
                                data: $(this).serialize(),
                                success: function(data){
                                    alert(data)
                                }
                            });
                            return false;
                         })
            }
        });
        return false;
    });
});
</script>     
</head> 
<body>
<div id="content">
    <a class="mod2" href="?f=1">Get form</a>
</div>
</body> 
</html>

Сохраните под любым именем как РНР файл и запустите. Три "в одном флаконе" - страница, получение формы, отправка формы.
Код тот же самый, только убрано не влияющее на саму суть вопроса, и вместо url запросов используется текущий url (адрес ссылки и location при отправке формы).

То есть, если все написано корректно, то проблем быть не должно.
Ответить с цитированием
  #25 (permalink)  
Старый 23.04.2015, 00:54
Аспирант
Отправить личное сообщение для tiundv Посмотреть профиль Найти все сообщения от tiundv
 
Регистрация: 22.04.2015
Сообщений: 32

Ваш код работает.. Но он не подгруженный контент..
Статиком у меня тоже работает а вот из подгруженного контента формы гет работает а пост нет...
В любом случае БОЛЬШОЕ СПАСИБО...Было очень позновательно...
Ответить с цитированием
  #26 (permalink)  
Старый 23.04.2015, 02:19
Аспирант
Отправить личное сообщение для tiundv Посмотреть профиль Найти все сообщения от tiundv
 
Регистрация: 22.04.2015
Сообщений: 32

Странно...В отдельном файле работает а в моем никак...
Буду разбиратся в своих косяках..
Всем спасибо..
Ответить с цитированием
  #27 (permalink)  
Старый 23.04.2015, 07:01
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Статиком у меня тоже работает а вот из подгруженного контента формы гет работает а пост нет...

Значит обработчики событий делегируются элементам, которых нет на странице, других объяснений нет.
Ответить с цитированием
  #28 (permalink)  
Старый 24.04.2015, 13:16
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,719

Хоть раз за 3 страницы посоветовали ему консоль открыть?
Ответить с цитированием
  #29 (permalink)  
Старый 25.04.2015, 01:48
Аспирант
Отправить личное сообщение для tiundv Посмотреть профиль Найти все сообщения от tiundv
 
Регистрация: 22.04.2015
Сообщений: 32

Нашол решение...
Работает 100%
Может кому пригодится...
Можно динамически подменять все что угодно..
Передав масив с ключ - данные и через цикл вывести все что передали...
$('#content').on('submit','#postform',function(){
               var form = $(this);
               var error = false;
               form.find('input, textarea').each( function(){
                  if ($(this).val() == '') {
                     alert('Заполните поле "'+$(this).attr('placeholder')+'"!');
                     error = true;
                  }
               });
               if(!error){
                  var data = form.serialize();
                  $.ajax({
                     type: 'POST',
                     url:  'ad.php',
                     dataType: 'json',
                     data: data,
                     beforeSend: function(data){
                        form.find('input[type="submit"]').attr('disabled', 'disabled');
                     },
                     success: function(data){
                        if(data['error']){
                           alert(data['error']);
                        }else{
                           $('#content').html(data['content']);
                           $('#title').html(data['title']);
                        }
                     },
                     error: function (xhr, ajaxOptions, thrownError){
                        alert(xhr.status);
                        alert(thrownError);
                     },
                     complete: function(data){
                        form.find('input[type="submit"]').prop('disabled', false);
                     }
                  });
               }
                return false;
            });

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

Кстати ..не подскажете как вывести массив аяксом..типа как пхп foreach?
Ответить с цитированием
Ответ



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

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


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