2014-02-11 3 views
1

У меня есть форма на моей веб-странице, которая отправляется с использованием AJAX. Как только запрос SQL был отправлен в базу данных, на моей странице отображается сообщение об ошибке в случае ошибки.Перенаправление aftar при отправке формы с использованием AJAX

В противном случае, если SQL-запрос был успешным, я хочу перенаправить на другую страницу на моем сайте. Я сделал это тысячи раз, используя window.location.href, но в этом случае отображается всплывающее окно с подтверждением, запрашивающее у участника подтверждение действия. Если участник нажимает кнопку «отменить», форма всегда отображается, поэтому ее можно отправить снова и снова ... Я не могу найти решение для обхода этого подтверждения.

Кто-нибудь знает, как исправить эту проблему?

Заранее за вашу помощь.

plastic1st

Функция используется для отправки формы:

function send_data(formname, callback, database_action) 
{ 
    var xhr = getXMLHttpRequest(); 

    xhr.onreadystatechange = function() 
    { 
     if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) { 
      callback(xhr.responseText, database_action); 
     } 
    }; 

    var oMessage = tinymce.get('message_content'); 
    var oMessageContent = oMessage.getContent(); 

    xhr.open("GET", "http://<?php echo $_SERVER['SERVER_NAME']; ?>/includes/updatedatabse.php?" + getquerystring(formname)+"&database_action="+database_action+"&message_content="+encodeURIComponent(oMessageContent), true); 
    xhr.send(null); 
} 

и связанный с ним обратный вызов:

function updateMemberPage(result, database_action) 
{ 
    var oErrorMessageDiv = document.getElementById('system-message-container'); 
    if(result) 
    { 
     window.top.window.scrollTo(0,0); 

     // Redirect to the ads list page 
     if(database_action == "update") 
     { 
      // Display an information message 
      oErrorMessageDiv.innerHTML = "<div id='system-message' class='alert alert-success'>bla bla success</div>"; 
      window.location.href = "http://<?php echo $_SERVER['SERVER_NAME']; ?>/my-account"; 
     } 

     // Reload the page to update the ads list 
     else if(database_action == "insert") 
     { 
      // Display an information message 
      oErrorMessageDiv.innerHTML = "<div id='system-message' class='alert alert-success'>bla bla success</div>"; 
      location.reload(); 
     } 
    } 
    else 
    { 
     // Display an error message 
     oErrorMessageDiv.innerHTML = "<div id='system-message' class='alert alert-error'>bla bla error</div>"; 
    } 
    window.top.window.scrollTo(0,0); 
} 

ответ

0

Проблема решена :)

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

Мне нужно было изменить эту настройку, и проблема была исправлена.