Ajax опубликовать на той же странице и перезагрузить страницу, не разрушая параметры сообщения - PullRequest
0 голосов
/ 11 октября 2011

Кто-нибудь знает, как сохранить параметры записи после windows.location.reload (true)?

function handler(event,ui)
{
  $(this).find(".thumb").remove();
  $(this).append('<img class="thumb" src="'+ui.draggable.attr('src')+'">');

  imageurl = ui.draggable.attr('src');

  $.ajax({
     type: "POST",
     url: 'www.check.com.sg/', 
     data: {name: imageurl}, 
     complete:function(){
        window.location.reload(true);
     } 
  });
}

Если я сделаю перезагрузку на странице.параметры записи будут уничтожать

Ответы [ 2 ]

2 голосов
/ 11 октября 2011

Сначала ваш подход неверен для AJAX; Не следует обновлять страницу после успеха, вместо этого используйте метод .html () или .load () jQuery.

Теперь, если вы все еще хотите сделать то же самое, это не может быть сделано с помощью

window.location.reload(true);

вместо этого используйте

window.location.href

So

function handler(event, ui) {
    $(this).find(".thumb").remove();
    $(this).append('<img class="thumb" src="' + ui.draggable.attr('src') + '">');
    imageurl = ui.draggable.attr('src');
    $.ajax({
        type: "POST",
        url: 'www.check.com.sg/',
        data: {
            name: imageurl
        },
        complete: function() {
            var currentURL = window.location.href + '?var1=' + var1 + '&var2=' + var2;
            window.location.href = currentURL;
        }
    });
}
1 голос
/ 11 октября 2011

Да, вы можете сделать это. Просто поместите все переменные вашего поста в скрытой форме на странице, например:

<form action="" method="post" id="myform">
    <input type="hidden" name="my_var1" value="value_of_my_var1" />
    <!-- More inputs here.... -->
</form>

А затем отправьте свою форму, когда ваш вызов ajax будет завершен:

function handler(event,ui)
{
  $(this).find(".thumb").remove();
  $(this).append('<img class="thumb" src="'+ui.draggable.attr('src')+'">');

  imageurl = ui.draggable.attr('src');

  $.ajax({
     type: "POST",
     url: 'www.check.com.sg/', 
     data: {name: imageurl}, 
     complete:function(){
        $('#myform').submit();
     } 
  });
}
...