X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Индикатор сообщений
norb
norb
Topic Starter сообщение 8.7.2013, 17:47; Ответить: norb
Сообщение #1


Здравствуйте, уважаемые пользователи форума html.by!
Я к вам за помощью)

На неделе сидел делал сайт по вот этим урокам: http://ruseller.com/lessons.php?rub=37&id=369 (не сочтите за рекламу, хотел убрать под спойлер, но не нашёл)
Результат того, что у меня получилось если необходимо будет - тоже выложу. (просто я сюда за помощью пришёл, а не рекламиться)
Так вот, загвоздка у меня возникла в том, что у меня не получается сделать индикатор новых сообщений. (ну не знаю я как)
Я разбил сайт на несколько страниц (а не как в уроках только page.php) и сделал отдельную страницу с сообщениями, поэтому даже если пользователь на своей странице (page.php) он не знает есть ли у него новые сообщения пока не зайдёт на соответствующую страницу (что ни разу не здорово, согласитесь ;)).

Помогите мне сделать так чтобы когда пользователю приходит новое сообщение отображался индикатор какой-нибудь (а если количество этих самых сообщений, то вообще здорово, а если ещё и с помощью ajax сделать, то просто супер =)).

Спасибо за внимание!
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Bartle96
Bartle96
сообщение 9.7.2013, 1:38; Ответить: Bartle96
Сообщение #2


Я так понял вы сделали только авторизацию
Создавайте 2 sql таблицу для сообщений
Форму для отправки ваших сообщений
Ну и из базы собирайте сообщения, считайте их и выводите...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
norb
norb
Topic Starter сообщение 9.7.2013, 15:02; Ответить: norb
Сообщение #3


Bartle96, нет, сделана не только авторизация, сделаны и таблицы и сообщения, всё работает, я лишь хочу чтобы по приходу новых сообщений показывалось но любой страницы сайта что-то вроде "У Вас +1 сообщение"
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Degradator
Degradator
сообщение 11.7.2013, 15:49; Ответить: Degradator
Сообщение #4


Если у вас реализован обмен сообщениями, то есть, вы уже общаетесь через чат через базу, то вам надо просто отсылать аяксом запрос, например, каждые 15 секунд, который будет делать запрос к базе, где будет считать непрочитанные сообщения. Сам аякс выглядит так примерно:

function refreshMesBox() {
$.ajax({
type: "POST",
url: "php/newMes.php",
//попробуйте без даты, я просто данные отправляю.
data: "",
success: function(html){
html = quotesAdd(html);
$("#newMes").html(html);
}
});
}

На серверной стороне, в newMes.php вам надо посчитать количество строк, и вернуть сообщение - echo "Новых сообщений ".$newMesCount;
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
norb
norb
Topic Starter сообщение 11.7.2013, 16:21; Ответить: norb
Сообщение #5


Degradator, Спасибо. Отписал в личку.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
NoDrum
NoDrum
сообщение 12.7.2013, 22:32; Ответить: NoDrum
Сообщение #6


Предположим у тебя есть таблица с сообщениями, есть поле read_state, указывающее, прочитано ли сообщение.
Сделаем выборку кол-во новых сообщений:
SELECT COUNT(id) FROM message WHERE user_id = ... AND read_state = 0


В библиотеке jQuery есть метод load он загружает HTML из удаленного файла и встраивает его в объектную модель документа (DOM).

Т.е. тебе необходимо создать файл counter.php, в нем сделать выборку как я указал выше. На стороне клиента мы поступим следующим образом:
[JS]$(function () {
setInterval(function () {
$('#counter').load('/counter.php');
}, 5000); // Обновляем счетчик каждые 5 секунд
});[/JS]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
norb
norb
Topic Starter сообщение 14.7.2013, 11:48; Ответить: norb
Сообщение #7


так... сделал поле в таблице, назвал read.
Когда пользователь отправляет сообщение в поле read записывается значение 0.
делаю это так:
$read = '0';
$result2 = mysql_query("INSERT INTO messages (author, poluchatel, date, text, read) VALUES ('$author','$poluchatel','$date','$text','$read')" ,$db);

Дальше...
Когда пользователь заходит в свою почту выполняю запрос к базе, который должен изменять значение поля read с 0 на 1.
делаю это так:
$read1 = '1';
$result4 = mysql_query("UPDATE messages SET read='$read1' WHERE poluchatel='$myrow['login']'",$db);

Проверяю базу, значение не изменилось, так же 0. Не подскажите что не так делаю?

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыРассылка ваших сообщений в контакт формы!
3 dizaynmaks 1682 18.4.2022, 9:04
автор: dizaynmaks
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыРассылка ваших рекламных сообщений по ВКонтакте/Telegram/Instagram
36 SmmAdvert 6634 4.3.2021, 13:14
автор: monsterkill11
Горячая тема (нет новых ответов) SIMsms.org - Cервис по приему СМС сообщений на Российские номера, стран Европы, США
123 simsms 30371 9.11.2020, 8:50
автор: simsms
Открытая тема (нет новых ответов) 2 100 000 сообщений на maultalk.com
Форум - с праздником!
7 ARsHi 6428 20.5.2020, 13:44
автор: ARsHi
Открытая тема (нет новых ответов) Нужно написать 5 текстовых сообщений
За + в репутацию или оплачу деньги
0 Mr_SMO 1017 9.3.2020, 19:25
автор: Mr_SMO


 



RSS Текстовая версия Сейчас: 29.3.2024, 3:34
Дизайн