2013-11-17 5 views
0

У меня есть крикбокс с ссылкой на редактирование. Когда вы нажимаете (код ниже), он предлагает отредактировать сообщение, а затем отправить его динамически, создавая форму и отправляет форму на другую страницу для ее обработки.Создайте и отправьте форму динамически через AJAX

Первоначально другая страница обрабатывала его и перенаправляла обратно на страницу, на которой был пользователь. Однако я изменил способ отображения моего видеоокна.

Что я хочу сделать, так это динамически создавать форму как таковое, но вместо того, чтобы отправить ее на другую страницу (где она действительно принимает меня в моем браузере на страницу действия, я хочу отправить форму с помощью AJAX что я никогда не покидаю страницу, в которой я сейчас.

Так что в основном я мог бы быть на домашней странице, редактировать сообщение, а затем, когда подтвержу редактирование, я должен оставаться на главной странице, а затем форма будет обрабатываются с помощью AJAX в фоновом режиме и контейнер Рупора будет перезагружен (вместо самой страницы).

$('span.edit a').click(function (event) { 
    event.preventDefault(); 
    var id = $(this).attr('id'); 
    var url = $(this).attr('href'); 
    var new_post = prompt('', $('#shoutbox_comment_' + id).html()); 

    if (new_post != '' && new_post != null && new_post != $('#shoutbox_comment_' + id).html()) { 
     var form = $(
      '<form action="' + url + '" method="post">' + 
      '<input type="hidden" name="comment" value="' + new_post + '">' + 
      '<input type="hidden" name="id" value="' + id + '">' + 
      '<input type="submit">' + 
      '</form>'); 
     $('body').append(form); 
     $(form).submit(); 

     $('#shoutbox_container').load('../../website/inc/views/shoutbox/shoutbox.php?p=' + $(this).parent().attr('id')); 
    } else if (new_post != null) { 
     alert("Your post could not be edited. Make sure that your comment is not blank and that you've made changes."); 
    } 
}); 

Я уже получил AJAX просто отлично подходит для ссылки удаления, но из-за формы для почтовых данных у меня возникают проблемы с выяснением того, как отправить это в фоновом режиме.

ответ

0

На самом деле, я понял! > <

$('span.edit a').click(function (event) { 
    event.preventDefault(); 
    var id = $(this).attr('id'); 
    var url = $(this).attr('href'); 
    var new_post = prompt('', $('#shoutbox_comment_' + id).html()); 

    if (new_post != '' && new_post != null && new_post != $('#shoutbox_comment_' + id).html()) { 
     var form = $(
      '<form action="' + url + '" method="post">' + 
      '<input type="hidden" name="comment" value="' + new_post + '">' + 
      '<input type="hidden" name="id" value="' + id + '">' + 
      '<input type="submit">' + 
      '</form>' 
     ); 
     $('body').append(form); 

     $.ajax({ 
      type: 'post', 
      url: url, 
      data: form.serialize() 
     }); 

     $('#shoutbox_container').load('../../website/inc/views/shoutbox/shoutbox.php?p=' + $(this).parent().attr('id')); 
    } else if (new_post != null) { 
     alert("Your post could not be edited. Make sure that your comment is not blank and that you've made changes."); 
    } 
}); 
Смежные вопросы