الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة فى عمل شات

بدأه امجد مختار في 10 فبراير 2009 · 3 رد · 494 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه

لدى مشكلة فى عمل شات بالاجاكس وهى كيف يتم عرض الرسائل المرسلة فيجب وضع دالة عرض الرسائل فى تايمر كل ثانية مثلا او شىء مثل ذلك، انا جربت اشياء كثيرة ولكن هنجت الصفحة

فما الحل ؟

وشكراً

اللهم اهدنا فيمن هديت - اللهم صلى على سيدنا محمد

من أراد الدنيا فعليه بالقرآن ومن أراد الآخرة فعليه بالقرآن ومن أرادهما معاً فعليه بالقرآن

#2

طيب ؟؟؟؟ وين السؤال :)

أرجو وضع الكود المستخدم

أعتقد سبب تهنيغ الصفحة هو جلب البيانات كل ثانية بدو التأكد من هذه البيانات هل تم جلبها أم لا وبذلك تبقى الصفحة في لوب

أو أن هناك لوب في الجافا سكريبت أصلا يبقى يعمل دون شرط إيقاف

CMS Sfhati , Website Generator


نظام إدارة المحتوى صفحتي ... جربه الآن 


 


small-logo.png

#3

اتفضل ملف الجافا سكريبت :

var xmlHttp

function showmsg()
{ 
for (var i=1;i<86400;i+=2)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
 {
 alert ("Browser does not support HTTP Request")
 return
 }
var url="support3.php";
var params = "User=";
xmlHttp.onreadystatechange=stateChanged2 
xmlHttp.open("POST", url, true);
//Send the proper header information along with the request
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Content-length", params.length);
xmlHttp.setRequestHeader("Connection", "close");
xmlHttp.send(null)
}
}
//********************
showmsg();

function stateChanged2() 
{ 
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
 { 
document.getElementById("receive").innerHTML += xmlHttp.responseText + "<br>"
 } 
}
//********************

function GetXmlHttpObject()
{
var xmlHttp=null;
try
 {
 // Firefox, Opera 8.0+, Safari
 xmlHttp=new XMLHttpRequest();
 }
catch (e)
 {
 //Internet Explorer
 try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e)
  {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlHttp;
}
//********************

وهذا ملف الـ php :

<?
session_start();
include ("opendb.php");

$b = mysql_query ("select Id from chat where User='Support'");
if (mysql_num_rows ($b) == 0)
{
//echo "<b><center><font color=red>No Support Available</font></center></b>";
exit;
}
$c = mysql_fetch_array ($b);
$supportid= $c['Id'];

$b = mysql_query ("select Id from chat where User='$_SESSION[chat_sess]'");
if (mysql_num_rows ($b) == 0)
{
//echo "<b><center><font color=red>Session Ends</font></center></b>";
exit;
}
$c = mysql_fetch_array ($b);
$guestid = $c['Id'];

$b = mysql_query ("select max(MsgDate) as mdate,max(MsgTime) as mtime from chatmsg where SenderId='$guestid' and ReceiverId='$supportid'");
if (mysql_num_rows ($b) == 0)
{
//echo "<b><center><font color=red>Session Ends</font></center></b>";
exit;
}
$c = mysql_fetch_array ($b);
$mydate = $c['mdate'];
$mytime = $c['mtime'];

$b = mysql_query ("select Msg from chatmsg where SenderId='$guestid' and ReceiverId='$supportid' and MsgDate='$mydate' and MsgTime='$mytime'");
if (mysql_num_rows ($b) == 0)
{
//echo "<b><center><font color=red>Session Ends</font></center></b>";
exit;
}
$c = mysql_fetch_array ($b);
echo $c['Msg'];

include ("closedb.php");
?>

وهذا الملف الرئيسيى :

<table border="1"><td><div id="receive"></div></td></table>

الكود يعمل جيداً مرة واحدة ولكن انا اريده ان يعمل كل ثانية ليعرض الرسائل المرسلة الجديدة

وشكراً

اللهم اهدنا فيمن هديت - اللهم صلى على سيدنا محمد

من أراد الدنيا فعليه بالقرآن ومن أراد الآخرة فعليه بالقرآن ومن أرادهما معاً فعليه بالقرآن

#4

راجع هذا الموضوع في الصفحة الثانية

/index.php?showtopic=185481

الحل هو في هذا الكود

<script type="text/javascript">
	function timedCount()
	{
		getData('?my_session_id=<?=$Session_id?>', 'msg');
		t=setTimeout("timedCount()",5000);
	}
  timedCount();
</script>

لم أنظر إلى الكود الخاص بك لذلك وجب التنبيه لإجراء التعديلات اللازمه

CMS Sfhati , Website Generator


نظام إدارة المحتوى صفحتي ... جربه الآن 


 


small-logo.png

مواضيع مشابهة