Сверьте внимательно то, что я написал, с тем, что у вас - отсутствие return false; в обработчике submit, а это значит отправка формы естественным способом с перегрузкой страницы.
|
Все поправил итог тот же никакой реакции..Немогу понять..гет проходит из подгруженного крнтента а пост нет..
|
Слушайте если мы вставляем обработчик в подгружаемый контент его разве ненадо обернуть в какую нибудь функцию или <script></script> ???
|
<?
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 при отправке формы). То есть, если все написано корректно, то проблем быть не должно. |
Ваш код работает.. Но он не подгруженный контент..
Статиком у меня тоже работает а вот из подгруженного контента формы гет работает а пост нет... В любом случае БОЛЬШОЕ СПАСИБО...Было очень позновательно... |
Странно...В отдельном файле работает а в моем никак...
Буду разбиратся в своих косяках.. Всем спасибо.. |
Статиком у меня тоже работает а вот из подгруженного контента формы гет работает а пост нет...
Значит обработчики событий делегируются элементам, которых нет на странице, других объяснений нет. |
Хоть раз за 3 страницы посоветовали ему консоль открыть?
|
Нашол решение...
Работает 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;
});
|
Кстати ..не подскажете как вывести массив аяксом..типа как пхп foreach?
|
| Часовой пояс GMT +3, время: 08:11. |