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 > •••--->>> สอบถามเรื่อง Realtime แบบใช้ ajax .append ครับ <<<---•••



 

•••--->>> สอบถามเรื่อง Realtime แบบใช้ ajax .append ครับ <<<---•••

 



Topic : 114872



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



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




•••--->>> สอบถามเรื่อง Realtime แบบใช้ ajax .append ครับ <<<---•••

ผมสงสัยว่าถ้าเขียน .append ข้อมูลที่ realtime ใน database ถ้าเพิ่มมามันก็จะมาต่อท้าย และถ้า .preend ก็จะมาอยู่ reccord บนสุด ถ้าใน database มันมีการลบขึ้นมาละครับ จะทำไงให้หน้า backoffice ข้อมูลมันหายไป

ตัวอย่างที่ผมเขียนนะครับ realtime ทุกๆ 1 วินาที มีวิธีการเขียนแบบไหนไหมครับ ที่ให้อัพเดทข้อมูลที่ถูกลบใน db ออกไปด้วยจากหน้าโชว์

Code (PHP)
$(document).ready(function() {
	<?PHP 
	$d=date(d);
	$m=date(m);
	$y=date(Y);
	$date=$y."-".$m."-".$d." 00:00:00";
	?>
	
	var lastid = '<?=$date;?>';
	var numi = '1';
	var refreshId = setInterval(function()
    {		// alert('ON');
    	var formData = $.ajax({
									
		    url : "http://test.test.com/feed.php?type=reloadData",
		    type: "POST",
			data : "&lastid="+lastid+"&numi="+numi,
			dataType: "json",
		    success: function(formData)
		    {
		        $( ".wrapper" ).append(formData.chk);
		        lastid = formData.ids;	    
		        numi = formData.numi;	    
		    },
		});
    }, 1000);

});




Tag : PHP, JavaScript, Ajax







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-03-05 10:32:10 By : Nos1001 View : 1194 Reply : 7
 

 

No. 1



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

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

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


1.) ประเด็นมันอยู่ที่ว่าคุณจะทราบได้อย่างไรว่าข้อมูลเรคคอร์ดไหนถูกลบออกไปครับ
เว้นเสียแต่มีเทเบิ้ลที่เอาไว้จัดเก็บเรคคอร์ดที่ถูกลบออกไป เอาแค่ไอดีก็ได้ครับ ข้อมูลไม่ต้อง

2.) โครงสร้างข้อมูลที่ส่งกลับมาสำหรับ .append() เอื้ออำนวยต่อการลบออกจากหน้ารายงานหรือไม่
ขอเอาโค้ดส่วนนี้มาดูหน่อย "formData.chk"

3.) ต้องเพิ่มโค้ด jquery ส่วนของการลบข้อมูล ..... แต่ขอข้อ 2. มาดูก่อนครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-03-05 10:48:07 By : sakuraei
 


 

No. 2



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



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


ขอตอบคุณ Insufficient memory

ข้อ 1.
หน้ารายงานจะถูกส่งข้อมูล จะมีการ refresh 1 ที แล้วข้อมูลก็จะเป็นปกติ แต่อีกเครื่องที่เปิดไว้ ข้อมูลจะไม่หายครับ สรุปคือต้องการให้อีกเครื่องที่เปิดอยู่อัพเดทให้หายไปด้วย

ข้อ 2.
Code (PHP)
while($data=mssql_fetch_array($query)) 
{
$return .= '<tr><td>'.$message.'</td><td>'.$datetime".'</td><td><input type="checkbox" name="chkUP[]" id="chkUP'.$numi.'" value="'.$id.'"></td><td><a href=del_msg.php?id='.$id.'><img src="remove.png" width="20"></a></td></tr>';
$lastid = $datetime;
$numi++;
}

$return;
$numi;

$back = array("chk"=>"$return","ids"=>"$lastid","numi"=>"$numi");
echo json_encode($back);

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-03-05 11:43:11 By : Nos1001
 

 

No. 3



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


คง ต้องทำ ajax ไปเช็คครับ

สร้าง ฟีลด์ เวลา update ไว้ด้วย

เอาเวลา อัพเดทเก่า ไปเช็ค ถ้ามีการ update ได้เวลาใหม่ก็เอาข้อมูล มาเปลี่ยน หรือ สั่ง refresh
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-03-05 11:55:00 By : Chaidhanan
 


 

No. 4



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



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


มีวิธีเขียนเช็คแบบ ajax ไหมครับ เพราะผมเวลาลบให้ update field status อยู่แล้วครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-03-05 12:24:35 By : Nos1001
 


 

No. 5



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


ตัวอย่างการใช้ jquery ประยุกต์เอานะครับ
Code (PHP)
<?php
session_start();
$_SESSION['rownum']=isset($_SESSION['rownum'])? $_SESSION['rownum'] : 0;
if(isset($_POST['getdata'])){
	echo '<tr><td>'.(++$_SESSION['rownum']).'</td><td>Message '.$_POST['value'],' '.$_SESSION['rownum'].'</td></tr>';
	exit;
}
if(isset($_GET['cleardata'])) { $_SESSION['rownum']=0; exit; }
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<!-- ///////// หาโหลดมาใช้ด้วยนะครับ ////////////////////// -->
<script language="javascript" src="../jquery-2.1.1.min.js"></script>
<!-- ///////////////////////////////////////////// -->
<script language="javascript" type="text/javascript">
$(document).ready(function(e) {
	$('#select_job').change(function(e) {
		if($(this).val()>''){
			$.ajax({ url: '', type:'POST', data:{ getdata: 'test', value: $(this).val() }}).done(function(msg){
				$('#testTB').append(msg);
			});
		}
	});
	$('button').click(function(e){
		$('#testTB').empty().append('<tr><th>Item</th><th>Description</th></tr>');
		$.ajax({ url:'?cleardata=1'});
	});
});
</script>
<select id="select_job" >
<option value="">-- Select Your Job --</option>
<option value="getYourJob1">getYourJob1</option>
<option value="getYourJob2">getYourJob2</option>
</select><br />
<button type="button">clear</button>
<table border="1" id="testTB">
<tr><th>Item</th><th>Description</th></tr>
</table>
</body>
</html>


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-03-05 12:40:42 By : Chaidhanan
 


 

No. 6



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

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

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


เพราะฉะนั้นต้องสร้างอีกเทเบิ้ลครับ ให้เก็บไอดีของเรคคอร์ดที่ถูกลบไปแล้วโดยมีโค้ดคร่าวๆดังนี้

$sql = "delete from tbxxxx where id='xxxx'";
.....
$sql ="insert into tb_trash(deletedid) values('xxxx')";

หรือเพิ่มฟิลด์สถานะเพื่อเก็บว่าเรคคอร์ดนั้นถูกลบหรือยกเลิก หรือป่าว ผมสมมุติชื่อฟิลด์ว่า trash enum('deleted') null default null
Quote:
เช่นตำสั่ง alter table tbxxxx add trash enum('deleted') null default null


หลังจากนี้ตอนเรียกข้อมูลมาเก็บไว้ในตัวแปร $resturn ให้เพิ่ม <tr data-id="{$data["id"]}">
while($data=mssql_fetch_array($query)) 
{
$return .= '<tr data-id="{$data["id"]}"><td>'.$message.'</td><td>'.$datetime".'</td><td><input type="checkbox" name="chkUP[]" id="chkUP'.$numi.'" value="'.$id.'"></td><td><a href=del_msg.php?id='.$id.'><img src="remove.png" width="20"></a></td></tr>';
$lastid = $datetime;
$numi++;
}

$return;
$numi;

$back = array("chk"=>"$return","ids"=>"$lastid","numi"=>"$numi");
echo json_encode($back);




สุดท้ายให้เพิ่มโค้ด
$(document).ready(function() {
	<?PHP 
	$d=date(d);
	$m=date(m);
	$y=date(Y);
	$date=$y."-".$m."-".$d." 00:00:00";
	?>
	
	var lastid = '<?=$date;?>';
	var numi = '1';
	var refreshId = setInterval(function()
    {		// alert('ON');
    	var formData = $.ajax({
									
		    url : "http://test.test.com/feed.php?type=reloadData",
		    type: "POST",
			data : "&lastid="+lastid+"&numi="+numi,
			dataType: "json",
		    success: function(formData)
		    {
		        $( ".wrapper" ).append(formData.chk);
		        lastid = formData.ids;	    
		        numi = formData.numi;	    
		    },
		});
		$.post("http://test.test.com/check-unlink.php",{},function(data){
			var json = $.parseJSON(data);
			$.each(json, function(){
				$(".wrapper tr[data-id='"+this.id+"]").remove();				
			});
		});
    }, 1000);

});



check-unlink.php
<?php
$returning = array();
//
$sql = "select id from tbxxx where (trash is not null or trash = 'deleted') and dating = curdate() ";
// สมมุติว่ามีฟิลด์ dating เก็บวันที่ทำการบันทึกน่ะครับ เราจะคัดกรองเอาข้อมูลของวันทีปัจจุบันเท่านั้น
....
while($data = mysql_fetch_assoc($.....)){
   $returning[] = array("id"=>$data["id"]);
}
echo json_encode($result);
?>


ทดลองดูน่ะครับ มันเป็นเพียงแค่แนวความคิดแต่ก็ไม่ไกลจากความเป็นไปได้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-03-05 13:08:57 By : sakuraei
 


 

No. 7



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

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

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


ขอเปลี่ยน single quote สลับกับ double quote ครับ
while($data=mssql_fetch_array($query)) 
{
$return .= "<tr data-id='{$data["id"]}'><td>{$message}</td><td>{$datetime}</td><td><input type='checkbox' name='chkUP[]' id='chkUP{$numi}'  value='{$id}'></td><td><a href='del_msg.php?id={$id}'><img src='remove.png' width='20'></a></td></tr>";
$lastid = $datetime;
$numi++;
}

$return;
$numi;

$back = array("chk"=>"$return","ids"=>"$lastid","numi"=>"$numi");
echo json_encode($back);



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-03-05 13:32:08 By : sakuraei
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : •••--->>> สอบถามเรื่อง Realtime แบบใช้ ajax .append ครับ <<<---•••
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 03
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 อัตราราคา คลิกที่นี่