2015-10-25 2 views
1

Итак, я использую Ajax для отправки переменной JS с index.php на page2.php. После того, как он настроен на page2.php, база данных будет отредактирована, пока пользователь будет на index.php все время. Однако мне нужно, чтобы index.php перезагружался или обновлялся, как только page2.php завершил обновление базы данных в фоновом режиме. Чтобы дать вам лучший ключ, я включу некоторые из моего кода.Страница обновления Ajax/Jquery после передачи переменных

На index.php является:

<a href='#' class='dbchange' onclick='dbchange(this)' id='".$ID'>Update</a> 

и

function dbchange(obj) { 
    var id = $(obj).attr('id'); 
    $.ajax({ 
     type: "POST", 
     url: 'page2.php', 
     data: "NewID=" + id, 
    }); 
} 

Поэтому в основном при нажатии на кнопку с надписью "Update" он посылает идентификатор кнопки page2.php и page2 .php оттуда обновляет изменения в базе данных, используя эту информацию. Однако URL пользователь на это:

http://website.com/index.php#

и база данных не обновляется для них, и они должны видеть раздражающий символ хэш в URL. Я googled, как обновить страницу в JS, и нашел вещи, которые либо не работают, либо работают, но приводят к тому, что переменные не отправляются в файл PHP. Мне просто нужно, чтобы после отправки в php-файл и, предпочтительно, после завершения php-файла, страница index.php обновляется и без # в конце.

+0

http://w3code.in/2015/10/insert-data-in-database-without-refreshing-page-using-ajax-and-php-beginner-guide/ Читать эту обучающую программу – Ricky

ответ

0

Удалить # затем замените JavaScript: недействительным (0):

<a href='javascript:void(0)' class='dbchange' onclick='dbchange(this)' id='".$ID'>Update</a> 

JS:

function dbchange(obj) { 
    var id = $(obj).attr('id'); 
    $.ajax({ 
     type: "POST", 
     url: 'page2.php', 
     data: "NewID=" + id, 
     success: function() { 
      window.location.reload(); 
     } 
    }); 
} 
+0

Спасибо! Никогда не знал о javascript: void (0) –

+0

Если его помощь, то не забудьте отметить как правую. – Nere

2

e.preventDefault() ответ, но если я могу предложить:

Избавьтесь от этой встроенной функции и добавьте e обработчик события с jQuery.

$(function() { 
    $('.dbchange').click (function (e) { 
    e.preventDefault(); 
    var id = this.id; 
    $.ajax({ 
     type: "POST", 
     url: 'page2.php', 
     data: {NewID: id}, 
     success: function(data) { 
     window.location.reload(); 
     } 
    }); 
    }); 
}); 
+0

Спасибо! Очень признателен! –