Технический сбой

Сайт временно работает в режиме только для чтения, идут восстановительные работы. Приносим свои извинения за неудобства.
DLE FAQ » Все вопросы » jQuery » Как правильно сделать ajax отправку формы на публикацию новости?

Как правильно сделать ajax отправку формы на публикацию новости?


     dle, ajax, post, form    jQuery, Общие вопросы по PHP, Хаки    1064

вопрос
как адаптировать данную форму ajax под публикацию статьи?

$("#form").submit(function (e) { 
           e.preventDefault();
            var form_data = $(this).serialize();
            $.ajax({
                type: "POST", 
                url: "public/script/send.php",
                data: form_data,
                success: function () {
                    alert("Ваше сообщение отправлено!");
                }
            });
        });

Делаю нa AJAX окне публикацию новости. Окно сделал, форму с полями спарсил а вот куда и как правильно отправить данные не знаю!

Ответа пока нет


4 комментария

nowheremany
Эксперт

nowheremany - -

$("#form").submit(function (e) { 
            $.ajax({
                type: "POST", 
                url: this.action,
                data: (new FormData(this)),
processData: false,contentType: false,
                success: function (d) {
                    $('#dle-content').html(d)
                }
            });e.preventDefault();
        });


вроде бы так

Благодарность принимаю тут Связь

pahuchiy
Юзер

pahuchiy - -

Либо я что-то не так делаю, или вообще не понимаю) Но не получается. Вот мой код:

$(document).ready(function() {
  $('.simple-ajax-popup').magnificPopup({
  type:'ajax',
  removalDelay: 300,
  mainClass: 'mfp-fade',
  closeOnContentClick: false,
  callbacks: {
  parseAjax: function(mfpResponse) {
    mfpResponse.data = $(mfpResponse.data).find('#dle-content');
  }
}
});
$("#entryform").submit(function (e) { 
            $.ajax({
                type: "POST", 
                url: this.action,
                data: (new FormData(this)),
processData: false,contentType: false,
                success: function (d) {
                    $('#dle-content').html(d)
                }
            });e.preventDefault();
        });
});

nowheremany
Эксперт

nowheremany - -

entryform вероятно будет находится в simple-ajax-popup после загрузки? Вы инициализируете событие на элемент которого ещё нет. По этому оно и не срабатывает.
Нужно делать так

$(document).ready(function() {
  $('.simple-ajax-popup')
	.on('submit','#entryform',function(e){
            $.ajax({
                type: "POST", 
                url: this.action,
                data: (new FormData(this)),
processData: false,contentType: false,
                success: function (d) {
                    alert($('#dle-content',$(d)))
                }
            });e.preventDefault()
	})
	.magnificPopup({
		type:'ajax',
		removalDelay: 300,
		mainClass: 'mfp-fade',
		closeOnContentClick: false,
		callbacks: {parseAjax: function(mfpResponse) {
			mfpResponse.data = $('#dle-content',$(mfpResponse.data))
		}}
	})
})

Благодарность принимаю тут Связь

pahuchiy
Юзер

pahuchiy - -

Неа, все равно не работает

Похожие вопросы

наверх