Показать сообщение отдельно
  #1 (permalink)  
Старый 20.03.2014, 20:39
Профессор
Отправить личное сообщение для cript Посмотреть профиль Найти все сообщения от cript
 
Регистрация: 03.02.2014
Сообщений: 238

Передача php параметров JSON
Приветствую!
Имеется скрипт чата, который передает параметры со страницы
$(function(){
    var chat = $('#chat')[0]; // Окно чата
    var form = $('#chat-form')[0]; // форма    
    // вешаем обработчик на отправку формы
    $('#chat-form').submit(function(event){        
        // поле ввода
        var text = $(form).find('input[type="text"]');
        // выключаем форму пока не пришел ответ
        $(form).find('input').attr("disabled", true);        
        // отправка сообщения
        update(text);       
        // что бы форма не перезагружала страницу
        return false;
    });    
    function update(text) {
        // что шлём
var send_data = { 
last_id: $(chat).attr('data-last-id'), 
};
        if (text)
            send_data.text = $(text).val();
        // шлём запрос
        $.post(
            'Library/Classes/Chat.class.php',
            send_data, // отдаём скрипту данные
            function (data) {
                // ссылка пришла?
                if (data && $.isArray(data)) {
                    $(data).each(function (k) {
                        // формируем наше сообщение
                        var msg = $('<div>' + data[k].created + ': ' + data[k].text + '</div>');
                        // и цепляем его к чату
                        $(chat).append(msg);
                        // если ласт ид меньше пришедшего
                        if (parseInt($(chat).attr('data-last-id')) < data[k].id)
                            // запоминаем новый ласт ид
                            $(chat).attr('data-last-id', data[k].id);
                    });                    
                    // если это отправка, то при получении ответа, включаем форму
                    if (text) {
                        // вклчюаем форму
                        $(form).find('input').attr("disabled", false);
                        // и очищаем текст
                        $(text).val('');
                    }
                    // прокрутка
                    $(chat).scrollTop(chat.scrollHeight);
                    // обновим таймер 
                    update_timer();
                }
            },
            'JSON' // полученные данные рассматривать как JSON объект
        );
    }
    // что бы при загрузке получить данные в чат, вызываем сразу апдейт
    update();   
    // что бы окно чата обновлялось раз в 5 секунд, прицепим таймер
    var timer;
    function update_timer() {
        if (timer) // если таймер уже был, сбрасываем
            clearTimeout(timer);
        timer = setTimeout(function () {
            update();
        }, 5000);
    }
    update_timer();
});

Форма:
Код:
<div id="chat" data-last-id="0"></div>
<form  id="chat-form">
<input type="text" id="chat-msg">
<input type="submit" name="Submit">
</form>
Подскажите как передать значение переменной с этой же страницы, например $username.
Пробовал так
var send_data = {
last_id: $(chat).attr('data-last-id'),
var username = {$username};
};
Не получилось..
Ответить с цитированием