Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.02.2011, 17:44
Новичок на форуме
Отправить личное сообщение для seoabcd Посмотреть профиль Найти все сообщения от seoabcd
 
Регистрация: 20.02.2011
Сообщений: 1

Скрипт ajax чата
Помогите пожалуйста найти скрипт ajax чата:
Скрипт ajax чата написан на php с использованием mysql. С помощью данного скрипта можно очень быстро развернуть собственный чат у себя на сайте.

Особенности:

* простая и быстра установка в 2 клика
* простота и удобство общения в чате
* использование ajax для добавления сообщений без перезагрузки страниц
* удобная система отправки приватных сообщений
* возможность установки практически в любой дизайн
* возможность бана пользователей администратором

Требования:

* php 4/5, mysql
был раньше тут http://private-seo-soft.blogspot.com/2010/06/ajax.html
может у когото есть он?

Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 20.02.2011, 17:56
Профессор
Отправить личное сообщение для (Sandr) Посмотреть профиль Найти все сообщения от (Sandr)
 
Регистрация: 14.10.2010
Сообщений: 376

возможно, это подойдёт:

--------------------------------------------------------------------------
Приступим к разбору кода. Добавим в начало файла index.php строки с подключением библиотеки jQuery:
<head>
<script type="text/javascript" src="jquery.js"></script>
</head>

Далее, вынесем из файла index.php фрагмент кода, который отвечает за вывод содержимого гостевой книги, в отдельный файл show.php:
<!-- блок отображения сообщений-->

<?php
include ("dbconnect.php");

$c=0;
// выбор всех записей из БД, отсортированных так, что самая последняя отправленная запись
// будет всегда первой.
$r=mysql_query ("SELECT * FROM gb ORDER BY dt DESC");
while ($row=mysql_fetch_array($r)) // для каждой записи организуем вывод.
{
if ($c%2)
$col="bgcolor='#f9f9f9'"; // цвет для четных записей
else
$col="bgcolor='#f0f0f0'"; // цвет для нечетных записей

?>
<table border="0" cellspacing="3" cellpadding="0" width="90%" <? echo $col; ?>
style="margin: 10px 0px;">
<tr>
<td width="150" style="color: #999999;">Имя пользователя:</td>
<td><?php echo $row['username']; ?></td>
</tr>
<tr>
<td width="150" style="color: #999999;">Дата опубликования:</td>
<td><?php echo $row['dt']; ?></td>
</tr>
<tr>
<td colspan="2" style="color: #999999;">
---------------------------------------------------------------
</td>
</tr>
<tr>
<td colspan="2">
<?php echo $row['msg']; ?>
<br>
</td>
</tr>

</table>
<?php
$c++;
}

if ($c==0) // если ни одной записи не встретилось
echo "Гостевая книга пуста!<br>";


?>

Как видим, в коде все осталось без изменений, просто теперь он находится в отдельном файле (поэтому добавилось подключение модуля dbconnect.php для соединения с БД).

В файле index.php, в месте, где раньше располагался вывод, размещаем контейнер:
<div id="messages">
</div>

В этот контейнер мы будем динамически загружать информацию с записями гостевой книги.

Далее в файле index.php следует форма ввода сообщения, её код остался практически без изменений, но:

1. Мы убрали атрибуты name, action и method, и функцию splash(), вызываемую по событию onClick (контроль заполнения формы остался, просто теперь эта проверка выполняется в другой части кода) из строки и добавили параметр id:
<form id="myForm">

2. Убрали строку со скрытым полем action
<input type="hidden" name="action" value="add">

3. Подписали id для всех полей ввода.

Как видно из изменений в форме, в нашем примере полностью изменилась процедура отправки данных на сервер и получение результатов с него.

Отправка данных и получение содержимого гостевой книги описано в следующем скрипте:
<script>

// загрузка сообщений из БД в контейнер messages
function show_messages()
{
$.ajax({
url: "show.php",
cache: false,
success: function(html){
$("#messages").html(html);
}
});
}

$(document).ready(function(){

show_messages();

// контроль и отправка данных на сервер в фоновом режиме
// при нажатии на кнопку "отправить сообщение"
$("#myForm").submit(function(){

var name = $("#username").val();
var msg = $("#msg").val();
if (name =='')
{
alert ("Заполните имя пользователя!");
return false;
}
if (msg =='')
{
alert ("Заполните текст сообщения!");
return false;
}

$.ajax({
type: "POST",
url: "action.php",
data: "username="+name+"&msg="+msg+"&action=add",
success: function(msg){
show_messages();
}
});

return false;
});

});

</script>

Для того, чтобы событие submit не приводило к обновлению страницы в браузере, функция $("#myForm").submit() всегда должа возвращать значение false;

Использование библиотеки jQuery в данном примере заключается в вызове функции $.ajax(), а также для простой адресации к объектам и их параметрам, например $(“#username”).val() – получает значение из поля ввода имени пользователя (id=”username”).

Функция $.ajax() отрабатывает по разному в зависимости от параметров.

Например, в функции show_messages() с помощью функции $.ajax() происходит загрузка данных из файла show.php в фоновом режиме:
$.ajax({
url: "show.php",
cache: false,
success: function(html){
$("#messages").html(html);
}
});

При успешной загрузке (параметр success), выполняется функция, заполняющая контейнер messages этими данными:
function(html){
$("#messages").html(html);
}

А при обработке события нажатия на кнопку «Отправить сообщение» функция $.ajax() отправляет данные на сервер, опять же в фоновом режиме, не перегружая всю страницу:
$.ajax({
type: "POST",
url: "action.php",
data: "username="+name+"&msg="+msg+"&action=add",
success: function(msg){
show_messages();
}
});

Как мы видим, здесь используется метод POST (type: "POST") для отправки данных, как и в исходном примере. Данные из параметра data передаются файлу action.php (url: "action.php"). При успешной передаче данных, выполняется функция, описанная в параметре success, т.е. мы отображаем уже новые записи гостевой книги:
function(msg){
show_messages();
}

Как видно из примера, загрузка и отправка сообщений гостевой книги происходит без полного обновления страницы, что экономит нам время и трафик.
Ответить с цитированием
  #3 (permalink)  
Старый 20.02.2011, 18:39
Профессор
Отправить личное сообщение для (Sandr) Посмотреть профиль Найти все сообщения от (Sandr)
 
Регистрация: 14.10.2010
Сообщений: 376

Подошло хоть?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
скрипт работает только в IE, а в остальных браузерах нет. melodicman Firefox/Mozilla 0 23.06.2010 15:18
Ajax запрос из класса, прокомментируйте плииз скрипт sav Ваши сайты и скрипты 0 04.06.2010 13:11
Почему не загружается скрипт? prog90 Я не знаю javascript 14 11.06.2009 11:52
Объясните как вызывается ajax скрипт AddressBook из формы prog90 AJAX и COMET 3 06.06.2009 16:12
Ищу скрипт для вставки на страницу чата Relle Firefox/Mozilla 3 14.05.2009 11:08