Открыть страницу перенаправления в новой вкладке, когда есть несколько кнопок отправки - PullRequest
0 голосов
/ 12 декабря 2011

Я делаю приложение для блога в django, которое имеет 3 кнопки отправки.

  1. Опубликовать
  2. Сохранить
  3. Предварительный просмотр

Сохранение должно быть обработано AJAX и обновляет данные в блоге.Опубликовать, опубликовать блог и перенаправить на соответствующую страницу. Предварительный просмотр показывает предварительный просмотр на другой вкладке.В случае предварительного просмотра я могу просто вызвать функцию сохранения, а затем открыть страницу предварительного просмотра в новой вкладке. / Таким образом, по сути, мне нужно сохранить через AJAX.Я использую приведенный ниже код, и я получаю сообщение об ошибке

<form id="blog_form" action="" method="post">
<!-- All the form fields are here -->
    <a href="#" id="not_button" class="save_button"> Save</a>
</form>

, а javascript имеет вид

    var post_url = location.pathname;

    $(".save_button").click(function() 
    {           
        $.ajax({
          type: "POST",
          url: post_url,
          data: $("#blog_form").serialize(),
          dataType: 'json',
          success: function() 
          {
            // display success message 
            $("#reply-message").html('Your message has been sent!').fadeOut(3000, function() {});
          },
          error: function() 
          {
            // display failure message
            $("#reply-message").html('Form not saved!').fadeOut(3000, function() {});
          },

        });

        return false;   
    });

, и представления имеют эту часть в дополнение к другим вещам

def blog_form(request,author_id=None,slug=None):
     if request.is_ajax():
        if request.method == 'POST':

            author = User.objects.get(pk=author_id)
            blog = get_object_or_404(Entry, creator = author, slug = slug)

            form = EntryForm(request.POST, instance = blog)
            if form.is_valid():
                form.save()
            return_message = "Updated"
            return HttpResponse(return_message,mimetype='application/javascript')

Я ожидаю, что это сработает, но я не знаю, почему я получаю ошибку в вызове jquery.Я получаю сообщение о неудаче.Типичный URL для этой формы будет /blogs/1/my-blog/edit/. Ниже приведена соответствующая часть моего файла urls.py

url(r'^(?P<author_id>\d+)/(?P<slug>[-\w]+)/edit/$', 'blog.views.blog_form', name='edit_blog'),

Редактировать:

Ошибка, которую явход в jquery был parsererror, после того как я решил эту проблему, возникла новая.Форма отправляется через ajax только один раз.Если я пытаюсь отправить его снова, он не работает, ничего не происходит, пока я не перезагружу страницу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...