อยากได้ตัวอย่าง code autorefresh ของ ajax ครับ ผมอยากได้ตัวอย่าง code auto refresh
ใช้ javascript เปลี่ยน src ของ iframe ครับ
Code (PHP)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="author" content="Marosdee" />
<script type="text/javascript">
var refresh_freg = 60;
var running = refresh_freg;
window.onload = function()
{
setInterval('remainTime()', 1000);
}
function remainTime()
{
document.getElementById('remain').innerHTML = running;
running--;
if ( running <= 0 )
{
document.getElementById('myiframe').src = document.getElementById('myiframe').src;
running = refresh_freg;
}
}
</script>
<title>Untitled 2</title>
</head>
<body>
<div>
<div style="float: left; height: 400; width: 200px; border: 1px solid black;">
<a href="javascript:void()" onclick="document.getElementById('myiframe').src = document.getElementById('myiframe').src">สั่งรีเฟรช</a>
<br />
<div>เหลืออีก <span id="remain">0</span> วินาที หน้า iframe จะถูกโหลดใหม่</div>
</div>
<div>
<iframe id="myiframe" scrolling="no" height="420" frameborder="0" width="440" title="danya-reload" src="http://home.thailand-script.com/?public=shoutbox&do=main&position=index">
<a href="http://home.thailand-script.com/?public=shoutbox&do=main&position=index">View shoutbox</a>
</iframe>
</div>
</div>
</body>
</html>
Date :
2010-03-08 06:44:51
By :
danya
อยากเปลียนใหรีเฟรชทุกๆ กี่วินาที ก็เปลี่ยนตรงนี้
var refresh_freg = 60;
60 คือ 1 นาที
Date :
2010-03-08 06:51:58
By :
danya
ขอบคุณมากครับ
แต่ผมกลับต้องการส่วนที่เป็น span มากกว่าเพราะมัน ไม่ต้องโหลดไรใหม่เลยอะครับ
ถ้าจะประกาศ span id="" อะไรสักตัวนึง แล้วดักที่ javascript แบบที่พี่ทำ แต่ไม่ต้องให้มันนับถอยหลังอ่ะคับ
รู้สึกพี่จะทำ เรียกใช้งาน ที่ span นั้นทุกๆ 1 วิป่ะคับ
ถ้าจะเขียนให้มันใช้งาน span นั้นทุกๆ 1 วิโดยไม่ต้องนับถอยหลัง แค่ให้มันโชว์ ที่ span นั้นทุกๆ 1 วิ
ต้องเขียนยังไงครับ รบกวนอีกทีครับ
Date :
2010-03-08 15:52:20
By :
ikamp
ไม่อยากให้มันนับถอยหลัง ก็เอาอันนี้ออก
document.getElementById('remain').innerHTML = running;
ส่วนคำถามอื่น ยังงงๆ
Date :
2010-03-08 16:28:26
By :
danya
<div>เหลืออีก <span id="remain">0</span> วินาที หน้า iframe จะถูกโหลดใหม่</div>
บรรทัดนี้พี่ ให้ id ของ span ชื่อ remain แล้วพี่ไปสั่งให้มันนับถอยหลังใน javascript
โดยให้มันใช้คำสั่ง
window.onload = function()
{
setInterval('remainTime()', 1000);
}
ก็คือทุกๆ 1 วิ ให้ใช้ฟังชั่นนี้ ใช่ป่ะคับ
ที่อยากได้คือตรงนี้ครับ แต่ไม่ต้องการให้มันนับถอยหลัง สมมติผมจะใส่อะไรไปก็ได้ใน span
เช่น
<span id='remain'> โชว์วันที่ เวลา เป็นวินาที ปัจจุบัน </span> (ก็จะโชว์วินาทีที่วิ่งเพิ่มไปเรื่อยๆถูกไหมครับ)
อยากให้มัน refresh แบบ ไสตล์ นี้ อะครับ ชอบเพราะมันเนียนดีอ่ะ
Date :
2010-03-08 16:43:37
By :
ikamp
ประมาณนี้ครับ
คือต้องการให้ เรียกใช้ id remain เรื่อยๆ เพื่อให้ วินาทีมันถูกแสดงไปเรื่อยๆ แบบนั้นอ่ะครับ
-*- อธิบายไม่เป็น
นี่เป็นที code ที่สร้างไว้ครับ แล้วข้างบนคือผลรัน
Code (PHP)
<?php
$hour = +0;
$min = 0;
$Year = date("Y")+543;
$thaimonth=array("มค.","กพ.","มีค.","เมย.","พค.","มิย.","กค.","สค.","กย.","ตค.", "พย.","ธค.");
$mtoday=date("d ",mktime( date("H")+$hour, date("i")+$min ));
$mtime=date("H:i:s",mktime( date("H")+$hour, date("i")+$min ));
$mdate=$mtoday. $thaimonth[date("m")-1]." ".$Year;
//echo "$mdate $mtime";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>แสดงวันที่ - เวลา แบบ Realtime</title>
</head>
<body>
<table width="400" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse">
<tr>
<td colspan="2"><div align="center"><strong>แสดงวันที่ + เวลา แบบ Realtime </strong></div></td>
</tr>
<tr>
<td width="200"><div align="center">วันนี้วันที่</div></td>
<td width="200"><div align="center">เวลา</div></td>
</tr>
<tr>
// ============ ตั้งไอดีtag span ชื่อ remain ==========
<span id="remain">
<td width="200"><div align="center"><?= $mdate ?></div></td>
<td width="200"><div align="center"><?= $mtime ?></div></td>
</span>
// ============================================
</tr>
</table>
</body>
</html>
Date :
2010-03-08 17:03:32
By :
ikamp
ใช่เลยครับพี่ ผมรอได้ครับ ขอบคุณมาก
Code (PHP)
document.getElementById("clock").innerHTML = date + '<br />' + time;
// กำหนดให้ค่าใน id clock เท่ากับ date + '<br />' + time ใช่ปะคับ
setTimeout(displaytime,1000); // เรียกใช้ ฟั่งชั่นทุกๆ 1 วินาที
ถ้าจะเขียน java script ยังไงให้
document.getElementById("clock").innerHTML มีค่าเท่ากับ หน้า php ที่เราสร้างไว้อีกไฟล์นึง
สมมตินะครับ
Code (PHP)
document.getElementById("clock").innerHTML = times.php
// ผมไม่รู้ syntax java script เลย
(ซึ่ง time.php อยู่ใน directory แบบนี้ /process/time.php)
และใน time.php เราก็เขียนการแสดง วัน เวลา เป็นวินาที แบบ php ไว้อ่ะครับ
เหตุผลที่ต้องการอย่างนี้คือ ผมจะได้เอาไปดัดแปลง ทำอย่างอื่นได้ เพราะถนัด php มากกว่า javascript
ปล. ขอบคุณมากคับที่ไม่ทิ้งผม -*- น้ำตาจะไหลคับ 555
Date :
2010-03-09 00:48:24
By :
ikamp
ถ้าใช้ Jquery ก็ง่ายๆ กันเลยครับ
Code (PHP)
<html>
<head>
<script src="http://www.brightcherry.co.uk/test/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
function getRefresh() {
$("#auto").show("slow");
$("#auto").load("stime.php", '', callback);
}
function callback() {
$("#auto").fadeIn("slow");
setTimeout("getRefresh();", 1000);
}
$(document).ready(getRefresh);
</script>
</head>
<body>
<div id="auto">
</div>
</body>
ไฟล์ stime.php ก็ไม่ได้ยากอะไร บรรทัดเดียว โล้น ๆ
Code (PHP)
echo date("H:i:s");
Date :
2010-03-09 07:18:35
By :
deawx
ถึงพี่ deawx
ผมโหลด jquery-1.3.2.min.js มาไว้ directory เดียวกันแล้วเขียนแบบนี้
file index.php
Code (PHP)
<html>
<head>
<script src="jquery-1.3.2.min.js"></script>
<script type="text/javascript">
function getRefresh() {
$("#auto").show("slow");
$("#auto").load("stime.php", '', callback);
}
function callback() {
$("#auto").fadeIn("slow");
setTimeout("getRefresh();", 1000);
}
$(document).ready(getRefresh);
</script>
</head>
<body>
<div id="auto"> </div>
</body>
</html>
ไฟล์ stime.php
Code (PHP)
<?php
echo date("H:i:s");
?>
ผลรันออกมามันไม่ refresh ไปเรื่อยๆนะครับ
กด refresh เองมันก็ไม่ได้เปลี่ยนวินาทีตามไปด้วย
ผมทำผิดตรงไหนหรือป่าวครับ
Date :
2010-03-09 12:27:41
By :
ikamp
ไม่ผิดนะ แต่ที่อาจจะผิด คือหน้าตาไม่ดี ... อ๊ะ พี่ล้อเล่น
ดูดี ๆครับ jquery ต้องใส่พาธให้ถูก ถ้ายังไม่ได้ให้โหลด เวอร์ใหม่มาลองเลยครับ
อาจเป็นไปได้ว่า jquery ที่เราโหลดมา มันอาจไม่สมบูรณ์ก็ได้ แนะนำให้โหลด ผ่าน www.jquery.com ดีกว่าครับ
Date :
2010-03-09 15:59:50
By :
deawx
เกิดปัญหาแปลกๆครับพี่
run ใน IE8 แล้วมันเหมือนจะไม่ ทำงานนะครับโชว์แค่เวลาล่าสุดไม่วิ่งไป (ขนาดกด refresh เองมันก็ไม่ refresh ตามด้วยยังจำค่าเก่า)
พอไป run ใน FireFox ได้ซะงั้น
แบบนี้แก้ปัญหาได้รึป่าวคับพี่
ลอง run ในหลายเครื่องนะครับ
IE 8 ไม่ได้จิงๆ
พี่เป็นไหมคับ
Date :
2010-03-09 23:19:41
By :
ikamp
$(document).ready(function(){
getRefresh();
});
มั้ง
Date :
2010-03-10 02:45:06
By :
plakrim
เหมือนเดิมครับ run ได้แต่ Firefox
IE ก็แสดงได้ครับแต่ ไม่ refresh เวลาไม่วิ่งไปครับ
ยังเหมือนเดิม บอดี้แสลม อิอิ
Date :
2010-03-10 07:11:23
By :
ikamp
ผมดูโค้ดพี่ดิวแล้ว ไม่น่ามีปัญหาะไรอะ
Date :
2010-03-11 04:47:58
By :
danya
index.php
<script>
function test(){
$('#test').load('test.php?'+Math.random(),function(){
window.setTimeout(function(){ test(); }, 1000);
});
}
$(function(){
test();
});
<script>
<div id="test"></div>
test.php
<?php echo rand(1,999999);?>
Date :
2010-03-11 08:40:38
By :
test
อืม Math.random() ต่อท้าย url ช่วยให้ ie8 หายจากอาการ งอแง
Date :
2010-03-11 10:07:17
By :
peterxp
ขอขอบคุณพี่ๆ ทุกคนมากครับ ขอบคุณพี่ ดุนยา คนแรกเลย
- พี่ deawx สำหรับ jQuery
- พี่ PlaKriM
- พี่ peterXP
ทุก แบบ ได้เอาไปใช้หมดเลยครับ ดีใจมาก ทำได้แล้ว
สรุป refresh ทำได้หลายแบบเลยลงท้ายแบบนี้ไว้แล้วกัน เพราะทำแบบนี้แล้ว IE ไม่งอแงครับผม
index.php
Code (PHP)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Realtime Calendar</title>
<script src="jquery-1.3.2.min.js"></script>
<script type="text/javascript">
function getRefresh() {
$("#auto").show("slow");
$("#auto").load("stime.php?"+Math.random(), '', callback);
}
function callback() {
$("#auto").fadeIn("slow");
setTimeout("getRefresh();", 1000);
}
$(document).ready(
function(){
getRefresh();
}
);
</script>
</head>
<body>
<div id="auto"> </div>
</body>
</html>
stime.php
Code (PHP)
<?php
echo date("H:i:s");
?>
Date :
2010-03-12 05:46:07
By :
ikamp
เออ ไช่ ผมลืม เรื่องแคชไปเลย 555+
Date :
2010-03-12 07:28:33
By :
danya
ยังไงผมต้องมีถามอีกแน่เลยครับ แต่ตอนนี้เอาที่ทำได้ให้ครบก่อน ทีละส่วนไป-*-
ถ้าทำไม่ได้ผมมาถามพี่อีกนะ ฮ่าฮ่า
ปล.ชอบ ajax มานไฮโซดี จัง อีกอย่างเหมือนมีของเล่นไปให้อาจารย์ยิ้ม แล้วหลังจากนั้นให้มันถล่มเราน้อยๆหน่อย 555
Date :
2010-03-12 17:18:09
By :
ikamp
copy ของ No.18 มา รันแร้ว ไม่เห็นขึ้นอะไรเลยครับ? เจอแต่ page ขาวๆ
Date :
2010-10-11 09:26:32
By :
x_boy
พี่ๆครับ ผมมีเรื่องรบกวนสอบถามครับ
กรณีโค๊ดข้างล่างนี้ ผมติดตรงที่ว่า เวลาของ Actual date เราต้อง refresh เอาเองเวลามันถึงจะอัพเดท(ไม่แสดงเป็น Real time กับเครื่อง)
เมื่อผมเปรียบเทียบกับโค๊ดของพี่ๆแล้วก็ยังงอยู่ดี(มือใหม่อ่ะครับ) รบกวนพี่ๆช่วยแก้ไขหรือแนะนำด้วยน่ะครับจักขอบพระคุณอย่างยิ่ง
Code (PHP)
<?php
date_default_timezone_set("asia/bangkok");
// Define your target date here
$targetYear = 2010;
$targetMonth = 11;
$targetDay = 06;
$targetHour = 8;
$targetMinute= 00;
$targetSecond= 00;
// End target date definition
// Define date format
$dateFormat = "d-m-Y H:i:s";
$targetDate = mktime($targetHour,$targetMinute,$targetSecond,$targetMonth,$targetDay,$targetYear);
$actualDate = time();
$secondsDiff = $targetDate - $actualDate;
$remainingDay = floor($secondsDiff/60/60/24);
$remainingHour = floor(($secondsDiff-($remainingDay*60*60*24))/60/60);
$remainingMinutes = floor(($secondsDiff-($remainingDay*60*60*24)-($remainingHour*60*60))/60);
$remainingSeconds = floor(($secondsDiff-($remainingDay*60*60*24)-($remainingHour*60*60))-($remainingMinutes*60));
$targetDateDisplay = date($dateFormat,$targetDate);
$actualDateDisplay = date($dateFormat,$actualDate);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>xxx</title>
<link href="style/style.css" rel="stylesheet" type="text/css">
<script type="text/javascript">
var days = <?php echo $remainingDay; ?>
var hours = <?php echo $remainingHour; ?>
var minutes = <?php echo $remainingMinutes; ?>
var seconds = <?php echo $remainingSeconds; ?>
function setCountDown ()
{
seconds--;
if (seconds < 0){
minutes--;
seconds = 59
}
if (minutes < 0){
hours--;
minutes = 59
}
if (hours < 0){
days--;
hours = 23
}
document.getElementById("remain").innerHTML = days+" days, "+hours+" hours, "+minutes+" minutes, "+seconds+" seconds";
setTimeout ( "setCountDown()", 1000 );
}
</script>
</head>
<body onload="setCountDown();">
<font size=“6”>
<div id="container">
<div id="header">
<p align="center"><img src="picture" width="80%" height="70%" />
</p></div>
<center>
<div id="content">
<table class="countTable" width= "60%" border="5px" cellspacing="5px" >
<tr><td bgcolor="#66ff00" width="150px" align="center"> Target date: </h2></td><td bgcolor="#66ff00" width="600px" align="center"> <?php echo $targetDateDisplay; ?> </h2></td></tr>
<tr><td bgcolor="#ff9900" width="150px" align="center"> Countdown:</td><td bgcolor="#ff9900" id="remain" width="600px" align="center"><?php echo "$remainingDay days, $remainingHour hours, $remainingMinutes minutes, $remainingSeconds seconds";?></td></tr>
<tr><td bgcolor="#0099ff" width="150px" align="center"> Actual date:</td><td bgcolor="#0099ff" width="600px" align="center"> <?php echo $actualDateDisplay; ?> </td></tr>
</table>
</center>
</div>
</font>
</body>
</html>
Date :
2010-10-13 23:19:24
By :
him
ขอบคุณมากๆ ค่ะ มาขอไปด้วยคนนะค่ะ
Date :
2011-05-29 04:10:09
By :
giftza_oke
copy ของ No.18 มา รันแร้ว ไม่เห็นขึ้นอะไรเลยครับ? เจอแต่ page ขาวๆ
Date :
2012-02-16 17:11:22
By :
lin2online
อ้างถึง No.18
ถ้าเราอยากส่งตัวแปรไปด้วย เช่นเราพิมพ์ index.php?txt=welcome
ให้ welcome ไปแสดงที่ไฟล์ stime.php
<?php
echo $_GET[$txt];
echo date("H:i:s");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
02.<html xmlns="http://www.w3.org/1999/xhtml">
03.<head>
04.<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
05.<title>Realtime Calendar</title>
06.<script src="jquery-1.3.2.min.js"></script>
07.<script type="text/javascript">
08.function getRefresh() {
09.$("#auto").show("slow");
10.$("#auto").load("stime.php?"+Math.random(), '', callback);
11.}
12.
13.function callback() {
14.$("#auto").fadeIn("slow");
15.setTimeout("getRefresh();", 1000);
16.}
17.$(document).ready(
18.function(){
19.getRefresh();
20.}
21.);
22.</script>
23.</head>
24.
25.<body>
26.<div id="auto"> </div>
27.</body>
28.</html>
Date :
2012-07-15 03:31:46
By :
r
โค๊ดของ No.18 ใช้ได้ไม่มีปัญหาครับ แต่ เวลาที่โชว์ ดึงเวลามาจากไหนครับ เวลาไม่ตรง
ถ้าเปลี่ยนจากการแสดง เวลา
ให้เป็นข้อความใหม่ที่มีผู้ใช้ submit เข้ามาถ้าไม่มีการ submit เข้ามาก็ไม่ต้อง รีเฟรส
ละครับต้องเพิ่มโค๊ดตรงไหนบ้าง
ประวัติการแก้ไข 2013-06-25 16:57:20
Date :
2013-06-25 16:52:02
By :
okboou
ตอบ No.21, No.24
เช็ค ตำแหน่งไฟล์ jquery-1.3.2.min.js ดูครับ
ถ้าไม่ตรงให้แก้ตรงนี้
06:<script src="jquery-1.3.2.min.js"></script>
Date :
2014-01-08 05:34:48
By :
dang
<div id="shtime" align="right"></div>
<script>
<!--
function show(){
var Digital=new Date()
var hours=Digital.getHours()
var minutes=Digital.getMinutes()
var seconds=Digital.getSeconds()
var dn="AM"
if (hours>=12)
dn="PM"
if (hours>12)
hours=hours-12
if (hours==0)
hours=12
if (minutes<=9)
minutes="0"+minutes
if (seconds<=9)
seconds="0"+seconds
document.getElementById("shtime").innerHTML = hours+":"+minutes+":"
//document.test.Clock.value=hours+":"+minutes+":"
+seconds+" "+dn
setTimeout("show()",1000)
}
show()
//-->
</script>
Date :
2014-01-08 12:00:44
By :
champkung226
Load balance : Server 02