Помощ със чат

PETROLA9408

Registered
Може ли някои да ми помогне със рефреш на чата ми искам да ми извежда съобщенията без да се рефрешва страницата четох че може със AJAX пробвах няколко опита не става ето кода за извеждането на съобщенията от базите данни

Код:
<?php
require 'function/connect.php';
?>
<html>
<head>
<head> 
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js" type="text/javascript"></script>

	</head>
<body>
<div id="ReloadThis"> 
<?php
@$chat_num= $_GET['chat_room'];
$sql2 = ("SELECT * FROM chat_message WHERE chat_room_number='$chat_num'");
$res = mysql_query($sql2);
$mess = mysql_num_rows($res);
if($mess ==0)
{
echo 'Няма съобщения';
}
else
{
while($me=mysql_fetch_assoc($res))
{
?>
  <?php echo $me['author_message'] ;?>   |
 [ <?php echo  date('Y.m.j в G:i:s  часа', $me['chat_message_added']) ; ?>  ] | 
<?php  echo $me['message_chat'] ;?><br/>
<?php
}
}
?>
</div>
</body>
 
Ако чата ти е на страница chat.php във него слагаш това:
PHP:
<?
$text1="Зарежда...";
?>
<div id="loadmsg1" onkeyup="keyup1(event.keyCode);">
<div id="loadwindow1" onkeyup="keyup1(event.keyCode);">
</div>
</div>
Това също:
[js]<script>
var waittime=800;


loadmsg1.focus()
document.getElementById("loadwindow1").innerHTML = "<? echo $text1; ?>";

var xmlhttp = false;
var xmlhttp2 = false;

function ajax_read(url) {
if(window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
if(xmlhttp.overrideMimeType){
xmlhttp.overrideMimeType('text/xml');
}
} else if(window.ActiveXObject){
try{
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
} catch(e){
}
}
}

if(!xmlhttp) {
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}

xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState==4) {
document.getElementById("loadwindow1").innerHTML = xmlhttp.responseText;

zeit = new Date();
ms = (zeit.getHours() * 24 * 60 * 1000) + (zeit.getMinutes() * 60 * 1000) + (zeit.getSeconds() * 1000) + zeit.getMilliseconds();
intUpdate = setTimeout("ajax_read('load.php?x=" + ms + "')", waittime)
}
}

xmlhttp.open('GET',url,true);
xmlhttp.send(null);
}

/* Request for Writing the Message */
function ajax_write(url){
if(window.XMLHttpRequest){
xmlhttp2=new XMLHttpRequest();
if(xmlhttp2.overrideMimeType){
xmlhttp2.overrideMimeType('text/xml');
}
} else if(window.ActiveXObject){
try{
xmlhttp2=new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try{
xmlhttp2=new ActiveXObject("Microsoft.XMLHTTP");
} catch(e){
}
}
}

if(!xmlhttp2) {
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}

xmlhttp2.open('GET',url,true);
xmlhttp2.send(null);
}

/* Submit the Message */
function submit_msg(){
nick = document.getElementById("loadnick1").value;
msg = document.getElementById("loadmsg1").value;

if (nick == "") {
check = prompt("please enter username:");
if (check === null) return 0;
if (check == "") check = "anonymous1";
document.getElementById("loadnick1").value = check;
nick = check;
}

document.getElementById("loadmsg1").value = "";
ajax_write("w.php?m=" + msg + "&n=" + nick);
}

/* Check if Enter is pressed */
function keyup1(arg1) {
if (arg1 == 13) submit_msg();
}

/* Start the Requests! ;) */
var intUpdate = setTimeout("ajax_read('load.php')", waittime);
</script>[/js]

Във файла load.php слагаш това:
PHP:
<div id="ReloadThis"> 
<?php
@$chat_num= $_GET['chat_room'];
$sql2 = ("SELECT * FROM chat_message WHERE chat_room_number='$chat_num'");
$res = mysql_query($sql2);
$mess = mysql_num_rows($res);
if($mess ==0)
{
echo 'Няма съобщения';
}
else
{
while($me=mysql_fetch_assoc($res))
{
?>
  <?php echo $me['author_message'] ;?>   |
 [ <?php echo  date('Y.m.j в G:i:s  часа', $me['chat_message_added']) ; ?>  ] | 
<?php  echo $me['message_chat'] ;?><br/>
<?php
}
}
?>
</div>
Формата за писане трябва да е във chat.php под скрипта който дадох :)
 
Слагаш php кода от readloadThis дивът в един друг файл и после:
Код:
$('#ReloadThis').load('chat_new.php');
var auto_refresh = setInterval(
function ()
{
$('#ReloadThis').load('chat_new.php');
}, 10000);
Това ще зареди файла chat_new.php във дивът ReloadThis , и след определеното време,ще го презарежда.
ПС:Времето е в MILISECONDS ,тоест 10000 = 10 секунди
 

Back
Горе