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

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


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

вопрос
как адаптировать данную форму 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 - 24 мая 2019 18:54 -

$("#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 - 24 мая 2019 22:10 -

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

$(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 - 25 мая 2019 10:09 -

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 - 25 мая 2019 19:54 -

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

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

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

наверх