Показать сообщение отдельно
  #1 (permalink)  
Старый 01.02.2014, 15:55
Аспирант
Отправить личное сообщение для mrKot Посмотреть профиль Найти все сообщения от mrKot
 
Регистрация: 02.01.2014
Сообщений: 85

Не работает чат(((
Нашел в инете чат ну почему он не обновляется, хз даже почему вроде все есть если страницу обновить чат тоже обновится, ну если страницу не обновлять и писать в чат ничего не происходит сообщения отправляет то что я пишу, ну оно сразу не появляется надо страницу обновить потом оно появится так само аналогично кто и пишет на другой стороне экрана=)))


Вот сам код...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Чат</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script>
$(document).ready(function () {

// делаем фокус на поле ввода при загрузке страницы
if ($("#chat_text_input").size()>0)
{
    $("#chat_text_input").focus();
}

// функция отправки сообщения
function send_message()
{
    var message_text = $('#chat_text_input').val();
    if (message_text!="")
    {
        $.ajax(
        {
            url: 'chat_scripts.php',
            type: 'POST',
            data:
            {
                'action': 'add_message',
                'message_text': message_text
            },
            dataType: 'json',
            success: function (result)
            {
                $('#chat_text_input').val(''); // очищаем поле ввода

                // сразу же подгружаем отправленное сообщение в чат
                get_chat_messages();
            }
         });
     }
 }

 // функция подгрузки новых сообщений в чат
 function get_chat_messages()
 {
     // если не выставлена блокировка повторного выполнения данной функции, продолжаем
     if ($('#block').val() == 'no')
     {
         $('#block').val('yes'); // ставим блокировку

         var last_act = $('#last_act').val();
         $.ajax(
         {
             url: 'chat_scripts.php',
             type: 'POST',
             data:
             {
                 'action': 'get_chat_message',
                 'last_act': last_act
             },
             dataType: 'json',
             success: function (result)
             {
                 // добавляем в текстовое поле новые сообщения
                 $('#chat_text_field').append(result.message_code);

                 // обновляем значение последнего сообщения
                 $('#last_act').val(result.last_act);

                 // автопрокрутка текстового поля вниз
                 $('#chat_text_field').scrollTop($('#chat_text_field').scrollTop()+100*$('.chat_post_my, .chat_post_other').size()); 

                 $('#block').val('no');// убираем блокировку
              }
         });
     }
 }

 // отправка сообщений при нажатии клавиши "Enter"
 $('#chat_text_input').keyup(function(event)
 {
     if (event.which == 13)
     {
         send_message();
     }
 });

 // отправка сообщений при нажатии кнопки "Ответить"
 $('#chat_button').click(function()
 {
     send_message();
 });

 // Действие для кнопки "Выход"
 $('#logout_button').click(function()
 {
     window.location.href = 'index.php?logout';
 });

 // проверяем наличие новых сообщений каждые 2 секунды
 setInterval(function()
 {
     get_chat_messages();
 }, 2000);

 // прокрутка текстового поля до последнего сообщения вниз
 $('#chat_text_field').scrollTop($('#chat_text_field').scrollTop()+100*$('.chat_post_my, .chat_post_other').size());

});
</script>

<style>
#chat_body
{
    width:800px;
    margin:8px auto 3px;
    float:left;
}
#chat_text_field /* Стили для текстового поля */
{
    overflow:auto; /* Отображается полоса прокрутки, когда высота контента > высоты текстового поля */
    border:1px solid #999;
    -webkit-border-radius: 5px 5px 5px 5px;
    -moz-border-radius: 5px 5px 5px 5px;
    border-radius: 5px 5px 5px 5px;
    padding:3px;
    background-color:#CCC;
}
#chat_text_input /* Стили для поля ввода */
{
    float:left;
    width:600px;
    margin:3px 0;
    font:13px Verdana, Geneva, sans-serif;
    border:1px solid #999;
    -webkit-border-radius: 5px 5px 5px 5px;
    -moz-border-radius: 5px 5px 5px 5px;
    border-radius: 5px 5px 5px 5px;
}
#chat_button
{
    float:left;
    margin:2px 5px 2px 15px;
}
#logout_button
{
    float:left;
    margin:2px 5px;
}
.chat_mess_time
{
    font:10px Verdana, Geneva, sans-serif !important;
    margin:1px 3px;
}
.chat_nickname
{
    font-weight:bold;
}
.chat_post_my
{
    font:11px Verdana, Geneva, sans-serif !important;
    margin:1px 3px; color:#161;
}
.chat_post_other
{
    font:11px Verdana, Geneva, sans-serif !important;
    margin:1px 3px; color:#039;
}
</style>

</head>
<body>

    <div id="chat_body">

        <!--Текстовое поле чата-->
        <div id="chat_text_field" style="height:300px;"></div>

        <!--Номер последнего сообщения-->
        <input id="last_act" name="last_act" type="hidden" value="0" />

        <!--Блокировка повторного выполнения функции get_chat_messages()-->
        <input id="block" name="block" type="hidden" value="no" />

        <input id="chat_text_input" name="chat_text_input" type="text" />
        <input id="chat_button" name="chat_button" type="button" value="Ответить"/>
        <input id="logout_button" name="logout_button" type="button" value="Выход" />

    </div>
</body>
</html>
Ответить с цитированием