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

#php #ajax #post #post-parameter

#php #ajax #Публикация #post-параметр

Вопрос:

Кто-нибудь знает, как сохранить параметры post после 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);
     } 
  });
}
  

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

Ответ №1:

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

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

 window.location.reload(true);
  

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

 window.location.href
  

Итак

 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   'amp;var2='   var2;
            window.location.href = currentURL;
        }
    });
}
  

Ответ №2:

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

 <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();
     } 
  });
}