Я хотел сделать опцию «запрос в друзья» на моем веб-сайте и хотел бы, чтобы запросы в друзья отображались как можно быстрее. (даже если я не перезагружаю страницу)
Итак, что я прочитал здесь, мне нужно setInterval
и Ajax, я нашел код, и он отлично работает впервые, но он не обновляет информацию об изменениях в базе данных. Это предназначено или я делаю что-то не так?
Например, у меня есть 2 запроса на добавление в друзья, и я получаю еще один запрос на добавление в друзья, когда моя страница простаивает, и он не отображается, даже если мой javascript снова выполняет запрос, верно?
Я знаю, что не должен использовать mysql_query
и я исправлю это как можно скорее, но ни в коем случае это не может быть проблемой.
$(document).ready(function(){
var ajax_call = function() {
document.getElementById('js_hack').innerHTML = "<?php
$ses_sql3=mysql_query("select * from friend_request where reciver='$login_username'", $connection);
$num_rows = mysql_num_rows($ses_sql3);
if($num_rows > 0) { echo $num_rows; }?>";
};
var interval = 1000 * 1; // where X is your every X minutes
setInterval(ajax_call, interval);
});
Поместите свой <?php?>
код в отдельном файле, и вызвать этот файл.
Я не смотрел на остальную часть вашего кода, чтобы убедиться, что он «хороший», подумал.
Вы не можете заставить серверный код работать на стороне клиента, вот так; и вы не хотите этого.
Вот пример и вопрос, который выглядит дублирующим: Ajax временной интервал вызова функции PHP
Когда клиент выполняет этот php-скрипт на вашем сайте, база данных анализируется только один раз, после чего, каждые «интервалы» мс, элемент html с идентификатором js_hack всегда будет перезаписываться с одним и тем же значением.
Проведите небольшое исследование объекта XMLHttpRequest:
http://www.w3schools.com/xml/xml_http.asp
Когда вы закончите, создайте php-файл, содержащий данные, для которых вы пытаетесь установить innerHTML, затем создайте функцию в javascript, которая использует функциональность xmlhttprequest для открытия и обработки вновь созданного php-файла.