Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > มีปัญหาการประยุกต์ใช้ Ajax (realtime) + php (ระบบ Chat) มีตัวอย่างให้ดูครับ



 

มีปัญหาการประยุกต์ใช้ Ajax (realtime) + php (ระบบ Chat) มีตัวอย่างให้ดูครับ

 



Topic : 073456



โพสกระทู้ ( 42 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook



Code ที่นำมาประยุกต์ใช้

https://www.thaicreate.com/community/ajax-display-data-real-time.html

สวนเพิ่มเติ่มคือ window.scrollBy(0,10000);

คำอธิบายคือ ต้องการให้สกอบาร์อยู่ล่างเสมอเมื่อมีข้อมูลให้ก็จะเเสดงอยู่ด้านล่าง ดังภาพ

ajex

การแสดงทำงานปกติ

ผมใช้หลักการแบบนี้ หน้าหลัก ใช้ iframe

หน้าที่ AjaxPHPRealtime_chat0.php

Code (PHP)
<div style="height: 400px;">

<iframe id="chat" src="AjaxPHPRealtime_chat1.php" frameborder="0"  marginwidth="0" marginheight="0" width="424px" 

height="400px" style="padding: 0; margin: 0; border: 0;"></iframe>
<br>
<iframe src="ilm_box_chat.php?id_user=2&&id_friend=3" height="100" width="424" scrolling="no" frameborder="0" ></iframe>
</div>



หน้า AjaxPHPRealtime_chat0.php เรียก AjaxPHPRealtime_chat1.php

AjaxPHPRealtime_chat1.php

Code (PHP)
<script language="JavaScript">
function bodyOnload()
{
	doCallAjax('CustomerID')
	setTimeout("doLoop();",2000);
}

function doLoop()
{
	bodyOnload();
}
</script>

<script language="JavaScript">
	   var HttPRequest = false;

	   function doCallAjax(Sort) {
		  HttPRequest = false;
		  if (window.XMLHttpRequest) { // Mozilla, Safari,...
			 HttPRequest = new XMLHttpRequest();
			 if (HttPRequest.overrideMimeType) {
				HttPRequest.overrideMimeType('text/html');
			 }
		  } else if (window.ActiveXObject) { // IE
			 try {
				HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
			 } catch (e) {
				try {
				   HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
			 }
		  } 
		  
		  if (!HttPRequest) {
			 alert('Cannot create XMLHTTP instance');
			 return false;
		  }
	
			var url = 'AjaxPHPRealtime_chat3.php';
			var pmeters = 'mySort='+Sort;
			HttPRequest.open('POST',url,true);

			HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			HttPRequest.setRequestHeader("Content-length", pmeters.length);
			HttPRequest.setRequestHeader("Connection", "close");
			HttPRequest.send(pmeters);
			
			
			HttPRequest.onreadystatechange = function()
			{

				 if(HttPRequest.readyState == 3)  // Loading Request
				  {
				   document.getElementById("mySpan").innerHTML = "Now is Loading...";
				  }

				 if(HttPRequest.readyState == 4) // Return Request
				  {
				   document.getElementById("mySpan").innerHTML = HttPRequest.responseText;
  				  // document.getElementById('chat').contentWindow.window.scrollBy(0,1000);
				  window.scrollBy(0,10000);

				  }
				
			}

	   }
	</script>
<body Onload="bodyOnload();">
<form name="frmMain" action="" method="post">
	<script language="JavaScript">

	function bodyOnload()
	{
		doCallAjax('CustomerID')
		setTimeout("doLoop();",3000);
	}

	function doLoop()
	{
		bodyOnload();
	}
	</script>

<span id="mySpan"></span>


หน้า AjaxPHPRealtime_chat1.php เรียก AjaxPHPRealtime_chat3.php

หน้า AjaxPHPRealtime_chat3.php สวนแสดงผล

Code (PHP)
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
include('connect_new.php'); 
$strSort = $_POST["mySort"];
?>
<table width="400" border="0" cellspacing="0" cellpadding="0" >
  <tr>
    <td valign="bottom">
		<? $m_id=2;
		   $user=3;
		   
				$sqlz = " select * from tb_chat  where ch_sender = $m_id OR ch_recipients = $m_id  OR ch_sender = $user OR ch_recipients = $user ";
                $queryz = mysql_query($sqlz);
                while($dbz= mysql_fetch_array($queryz))
                {
				$sql = "select * from tb_member where m_id='$dbz[ch_sender]' ";
				$query = mysql_db_query($dbname,$sql);
				$db = mysql_fetch_array($query);
				
				?>
<table width="400" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td ><a href="last"><img src="<? echo $db[m_image]; ?>" width="50" height="50"/></a><? echo $dbz[ch_detail]?></td>
  </tr>
</table>
<? } ?>
    </td>
  </tr>
</table>




ปัญหาที่ต้องการให้ช่วยคือ

ตอนนี้ เพจจะเรียกทุกๆ 3 วิ ทำให้ สกอบาร์ เวลาเราอ่านย้อนหลัง มันจะทำให้ดีดลงมา auto

จะขอเช็คค่าก่อนว่า ฐานข้อมูลมีค่าใหม่รึป่าว ถ้ามีถึงให้ ajax ตัวนี้ทำงาน ได้ไหมครับ หรือควรทำยังไง

การเรียกหน้าซ้อนๆกันแบบนี้ ผิดไหม หรือมีคำแนะนำอื่นๆสามารถแนะนำได้เลยนะครับ

ขอบคุณครับ



Tag : PHP, MySQL, Ajax







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-02-08 11:02:37 By : skmbz View : 6742 Reply : 15
 

 

No. 1

Guest


ลองเช็ค mouseover ดูครับ ถ้าหน้าต่างแชทมี mouseover ก็หยุดรีเฟรช mouseout ก็เริ่มนับรีเฟรช






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-08 11:09:45 By : 011
 


 

No. 2



โพสกระทู้ ( 42 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ยังไม่ get ฮัฟ มันเป็นหน้า chat นะครับ ไม่ไช่ tab chat
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-08 12:07:00 By : skmbz
 

 

No. 3

Guest


ครับ หน้าแชทครับ เราเลื่อนสกอบาร์ขึ้นไป มันชอบรีเฟรช เลยต้องเช็ค mouseover ครับ

ลองดูครับ

Code (PHP)
<script language="JavaScript">
var refresh = '';
function bodyOnload()
{
doCallAjax('CustomerID')

 refresh = setTimeout("doLoop();",3000);

}

function doLoop()
{

bodyOnload();

}

function stopRefresh()
{
    clearTimeout(refresh);
}

</script>


ที่ mysapn เป็น <span id="myspan" onmouseover="stopRefresh()" onmouseout="doLoop()"></span>
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-08 12:22:49 By : 011
 


 

No. 4



โพสกระทู้ ( 42 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ajax

รอบนี้ไม่โชว์อะไรเลยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-08 13:36:43 By : skmbz
 


 

No. 5



โพสกระทู้ ( 42 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ได้แล้วครับ ขอบคุณมากๆเลย

http://ilike-plus.com/AjaxPHPRealtime_Chat0.php ลองดูนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-08 13:46:38 By : skmbz
 


 

No. 6



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ตกลงแก้ไงครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-08 13:49:39 By : webmaster
 


 

No. 7



โพสกระทู้ ( 42 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

แก้ไขหน้า AjaxPHPRealtime_chat1.php

เปลี่ยน Script มาใช้

Code (PHP)
<script language="JavaScript">
var refresh = '';
function bodyOnload()
{
doCallAjax('CustomerID')

 refresh = setTimeout("doLoop();",3000);

}

function doLoop()
{

bodyOnload();

}

function stopRefresh()
{
    clearTimeout(refresh);
}

</script>

<span id="mySpan" onmouseover="stopRefresh()" onmouseout="doLoop()"></span>



ตอนแรกที่บอกไม่ได้ก็เพราะพิพม์ผิด ตรง myspan ต้องเป็น mySpan ครับ

<span id="myspan" onmouseover="stopRefresh()" onmouseout="doLoop()"></span>


Full code หน้าดึงข้อมูล AjaxPHPRealtime_Chat1 นำไปศึกษาต่อได้เลย

Code (PHP)
<script language="JavaScript">
	   var HttPRequest = false;

	   function doCallAjax(Sort) {
		  HttPRequest = false;
		  if (window.XMLHttpRequest) { // Mozilla, Safari,...
			 HttPRequest = new XMLHttpRequest();
			 if (HttPRequest.overrideMimeType) {
				HttPRequest.overrideMimeType('text/html');
			 }
		  } else if (window.ActiveXObject) { // IE
			 try {
				HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
			 } catch (e) {
				try {
				   HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
			 }
		  } 
		  
		  if (!HttPRequest) {
			 alert('Cannot create XMLHTTP instance');
			 return false;
		  }
	
			var url = 'AjaxPHPRealtime_Chat3.php';
			var pmeters = 'mySort='+Sort;
			HttPRequest.open('POST',url,true);

			HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			HttPRequest.setRequestHeader("Content-length", pmeters.length);
			HttPRequest.setRequestHeader("Connection", "close");
			HttPRequest.send(pmeters);
			
			
			HttPRequest.onreadystatechange = function()
			{

				 if(HttPRequest.readyState == 3)  // Loading Request
				  {
				   document.getElementById("mySpan").innerHTML = "Now is Loading...";
				  }

				 if(HttPRequest.readyState == 4) // Return Request
				  {
				   document.getElementById("mySpan").innerHTML = HttPRequest.responseText;
				   window.scrollBy(0,10000);
				  }
				
			}

	   }
	</script>
<body Onload="bodyOnload();">
<form name="frmMain" action="" method="post">
<script language="JavaScript">
var refresh = '';
function bodyOnload()
{
doCallAjax('ch_id')

 refresh = setTimeout("doLoop();",3000);

}

function doLoop()
{

bodyOnload();

}

function stopRefresh()
{
   clearTimeout(refresh);
}

</script>

<span id="mySpan" onmouseover="stopRefresh()" onmouseout="doLoop()"></span>



ขอบคุณพี่ๆ มากครับ ที่ช่วยเหลือ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-08 14:37:19 By : skmbz
 


 

No. 8



โพสกระทู้ ( 44 )
บทความ ( 0 )



สถานะออฟไลน์


พี่ครับผมอยากนำสคริปของพี่มาใช้เชื่อมกับ user ของเว็บผมแต่อยากให้คุยแบบส่วนตัวด้วยอ่ะครับต้องทำไงหรอครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-08 20:08:16 By : maruey00
 


 

No. 9

Guest


เอามาแชร์บ้างสิ อยากได้เหมือนกัน อ่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-04-25 10:33:04 By : BB
 


 

No. 10



โพสกระทู้ ( 3 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 7 เขียนโดย : skmbz เมื่อวันที่ 2012-02-08 14:37:19
รายละเอียดของการตอบ ::
ขอตัวอย่างนำไปประยุกต์ใช้งานบ้างครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-04-25 16:34:30 By : plamkung
 


 

No. 11

Guest


ขอตัวอย่างนำไปประยุกต์ใช้งานบ้างครับ
[email protected]
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-10 13:58:01 By : chamchantr
 


 

No. 12



โพสกระทู้ ( 11 )
บทความ ( 0 )



สถานะออฟไลน์


แชร์มั่งสิครับ อยากได้ไปใช้งานเหมือนกัน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-10 16:30:27 By : mzDeaThly
 


 

No. 13



โพสกระทู้ ( 74 )
บทความ ( 0 )



สถานะออฟไลน์


ไม่น่าใช้ iframe นะครับ ควรใช้เป็น Div มากกว่า iframe ผมไว้ใช้อัพโหลดไฟล์เท่านั้น
ลองดูอันนี้ผมทำไว้ขำขำเท่านั้น
http://kogun.winner.co.th/mobile/mobile/memberchat.php
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-10 16:44:25 By : zoceferatu
 


 

No. 14



โพสกระทู้ ( 5,105 )
บทความ ( 4 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


กระทู้ตั้งเมื่อ เดือน ก.พ. 2555 ผ่านมาก็เกือบจะ 2 ปีแล้วครับ....แค่อยากบอกเฉย ๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-10-10 17:39:10 By : apisitp
 


 

No. 15



โพสกระทู้ ( 280 )
บทความ ( 0 )



สถานะออฟไลน์


Code (JavaScript)
<script type="text/javascript">
var refresh = '';
$(function(){
    setInterval(function(){ 
		
        var getData=$.ajax({
			 cache: false,
                type: 'POST',
                url:"chatcon.php",
              //  data:"rev=1",
                async:false,
			    data: {"id":"<?=$id?>"},
                success:function(getData){
                    $("div#showData").html(getData); 
                }
        }).responseText;
    },2000);    


</script>

ถ้าเป็น script ตัวนี้ จะใส่ยังไงดีครับช่วยหน่อยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-09-20 22:48:19 By : mayaking
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : มีปัญหาการประยุกต์ใช้ Ajax (realtime) + php (ระบบ Chat) มีตัวอย่างให้ดูครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่