Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: чат
 
 автор: Roma   (05.03.2007 в 15:20)   письмо автору
 
 

я вроде разобрался с технологией AJAX. Подскажите пожалуйста, как сделать так, чтобы посланное сообщение добавлялось всем пользователям одновременно как в чате.
Вот файл который передает текст:

<script type="text/javascript" language="JavaScript">
function doLoad()
{
  var req = window.XMLHttpRequest? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
  if (req)
  {
    req.onreadystatechange =
        function readystate()
        {
             if (req.readyState == 4)
             {
                 if (req.status == 200)
                 { 
                      document.getElementById('content').innerHTML = req.responseText;
                 }
                 else
                 {
                     alert("Произошла ошибка"+ req.status+":\n" + req.statusText);
                 }
             }
        }
    req.open("GET", "load.php?id="+document.getElementById("edit1").value, true);
    req.send(); 
  }
}

</script>
<form method=post>
<input type="TEXT" size="50" id="edit1" >
<input type="button" value="Send" onclick="doLoad();">
</form>
<div id=content style="white-space:pre"></div>


что должен делать файл load.php? помогите плз.

   
 
 автор: Roma   (05.03.2007 в 15:40)   письмо автору
 
   для: Roma   (05.03.2007 в 15:20)
 

пожалуйста подскажите, очень нужно.

   
 
 автор: Ziq   (05.03.2007 в 15:47)   письмо автору
 
   для: Roma   (05.03.2007 в 15:20)
 

Пользователям значит браузерам? или зарегистрированным на сайте например...

Если браузерам, то с помощью файла load.php это сделать не удастся, т.к. php - серверный язык программирования.

Нужно чтобы со стороный клиента (браузера) посылался запрос к файлу, который содержит необходимый текст и отображался. Может что не так понял?

   
 
 автор: Roma   (05.03.2007 в 15:54)   письмо автору
 
   для: Ziq   (05.03.2007 в 15:47)
 

>Пользователям значит браузерам? или зарегистрированным на сайте например...
зарегистрированным на сайте

   
 
 автор: Ziq   (05.03.2007 в 16:20)   письмо автору
 
   для: Roma   (05.03.2007 в 15:54)
 

В чем тогда возникает сложность?

В файл load.php передаются обычным образом параметры через $_GET. Все зависит от того как устроено хранение данных на сайте. По-больше подробностей, а то не понятно что конкретно вы хотите.

   
 
 автор: Roma   (05.03.2007 в 16:23)   письмо автору
 
   для: Ziq   (05.03.2007 в 16:20)
 

я имею в виду:
пусть в чате сейчас 5 человек. Один из них пишет сообщение и посылает. У всех пятерых появилось отправленное сообщение.
как это реализуется?

   
 
 автор: Ziq   (05.03.2007 в 16:39)   письмо автору
 
   для: Roma   (05.03.2007 в 16:23)
 

Примерный алгоритм таков: допустим данные, который пользователь отправляет в чат, передаются файлу load.php. Файл load.php записывает в базу данных это сообщение. При этом все остальные пользователи с периодичность в 5 секунд, например, проверяют файл chat.php, который берет из базы данных новое(ые) сообщение(ия). Если оные имеются, то в окно добавляется новая запись (с помощью js).

Где-то так все и выглядит. Сам чат не разрабатывал, так что в мелочах могу ошибиться.

   
 
 автор: Roma   (05.03.2007 в 16:45)   письмо автору
 
   для: Ziq   (05.03.2007 в 16:39)
 

а какая функция "поможет" проверить какую-либо страницу с периодичностью 5 сек???

   
 
 автор: bronenos   (05.03.2007 в 17:12)   письмо автору
 
   для: Roma   (05.03.2007 в 16:45)
 

У меня запрос каждые 2 секунды ajax делает

   
 
 автор: Roma   (05.03.2007 в 17:50)   письмо автору
 
   для: bronenos   (05.03.2007 в 17:12)
 

как сделать этот запрос?

   
 
 автор: Roma   (05.03.2007 в 20:23)   письмо автору
 
   для: bronenos   (05.03.2007 в 17:12)
 

>У меня запрос каждые 2 секунды ajax делает
как это сделать?

   
 
 автор: ddhvvn   (05.03.2007 в 20:27)   письмо автору
 
   для: Roma   (05.03.2007 в 20:23)
 

По-моему..:

setTimeOut();
setTimeInterval();

   
 
 автор: Roma   (05.03.2007 в 20:35)   письмо автору
 
   для: ddhvvn   (05.03.2007 в 20:27)
 

как сделать чтобы было именно 2 секунды и куда вставить эти функции???

   
 
 автор: Roma   (05.03.2007 в 20:48)   письмо автору
 
   для: ddhvvn   (05.03.2007 в 20:27)
 

подскажите плз, куда вставить функцию задержки? может надо изменить код ява скрипта?
мне надо чтобы скрипт обращался к файлу каждые 2 сек

   
 
 автор: Roma   (05.03.2007 в 20:57)   письмо автору
 
   для: ddhvvn   (05.03.2007 в 20:27)
 

мне осталось разобраться только с этим моментом.Помогите пожалуйста........

   
 
 автор: bronenos   (05.03.2007 в 21:43)   письмо автору
 
   для: Roma   (05.03.2007 в 20:57)
 

после того как ответ получен ставите setTimeout ('getmessages();', 2000);
где в первый параметр подставьте имя вашей функции для получения сообщений

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования