หน้าหลัก โค้ด-บทความ php โค้ด-บทความ javascript โค้ด-บทความ css สารบัญ สารบัญ

ทักทายครับ

สวัสดีครับ หลังจากที่ blog นี้หยุดการอัพเดททบความเกี่ยวกับโค้ดในการใช้ทำเวปไปนานไม่ว่าจะเป็น code php, html, javascript, css, ajax เนื่องจากผมไม่ค่อยมีเวลาจนลืม blog นี้ไปเลย นึกขึ้นได้ตอนปีใหม่ ไปค้นหาใน google แล้วตกใจ เนื่องจาก blog นี้ไปอยู่ลำดับที่ 1 ของการค้นหา ไม่เชื่อลองดู เลยขอถือโอกาสเริ่มต้นใหม่ในช่วงปีใหม่นี้เริ่มอัพเดทบทความตั้งแต่ตอนนี้เป็นต้นไป หวังเป็นอย่างยิ่งว่าจะมีผู้ติดตามบทความของผมต่อไปน่ะครับ ปล.ท่านใดสนใจลงโฆษณาสามารถติดต่อได้ที่ hotcodephp@gmail.com

25 พ.ค. 2555

ทำ text box ให้รับเฉพาะภาษาอังกฤษ

เป็นการทำ text box ให้ผู้ใช้งานกรอกได้เฉพาะข้อความ ภาษาอังกฤษเท่านั้น หากไม่ใช้ภาษาอังกฤษก็จะมีข้อความเตือนโค้ดด้านล่างเลยครับ


<form action="" method="POST" onsubmit="return checkeng()" name="frm_test">
<input type="text" name="test"><input type="submit" value="Submit" name="submit" />
</form>

<script language="Javascript" type="text/javascript">
function checkeng() {
  var obj=frm_test.test
  var str="abcdefghijklmnopqrstuvwxyz" //ใส่ตัวอักษรที่มีได้ลงในนี้
  var val=obj.value
  var valOK = true;
 
  for (i=0; i<val.length & valOK; i++){
    valOK = (str.indexOf(val.charAt(i))!= -1)
    alert(valOK)
  }
 
  if (!valOK) {
    alert("ภาษาอังกฤษเท่านั้น")
    obj.focus()
    return false
  } return true
}
</script>
Read more >>

การทำ popup window

เป็นการเขียนโค้ดเพื่อเปิด popup window ที่ไม่มี ทั้ง menu, toolbar และ status bar ครับ ตัวอย่างด่านล้างเลยครับจะนำไปวางโดยใช้ภาษา php หรือ html ก็ได้แต่ตัวอย่างนี้ขอเป็นโค้ด php น่ะครับ


<script>
var win = null;
function popupwindow(filename, windowname, w, h) {
  var winl = (screen.width-w)/2;
  var wint = (screen.height-h)/2;
  if (winl < 0) winl = 0;
  if (wint < 0) wint = 0;
  var settings = 'height=' + h + ',';
  settings += 'width=' + w + ',';
  settings += 'top=' + wint + ',';
  settings += 'left=' + winl + ',';
  settings += 'resizable=0, scrollbars=0, status=0,toolbar=0, menubars=0, location=0';
  win = window.open('./'+filename, windowname, settings);
  win.window.focus();
}
</script>

อันนี้วิธีใช้ครับ

<script>popupwindow("test.php?xxx=xx", "_blank", 200, 300)</script>
Read more >>

การแก้ไขข้อมูลที่เป็น textfile บน web page

บทความนี้เป็นการใช้โค้ด php เพื่อช่วยในการแก้ไขข้อมูลที่เป็น text file โดยที่เราไม่จำเป็นต้อง upload หรือ download สามารถแก้ไขได้บน web page ได้เลย
ตัวอย่าง Code php นี้เป็นการแก้ไขไฟล์ c-main.txt ครับ


<meta http-equiv="Content-Type"content="text/html;charset=utf-8">
<table align="center" border="0" width="100%">
<tr><td align="center">
<?
$detail=$_POST[detail];
if (isset($detail)) {
$f=fopen("c-main.txt", "wb");
flock($f, 2);
fwrite($f, $detail);
flock($f, 3);
fclose($f);
echo "แก้ไขข้อความเรียบร้อย";
}
?>

</td></tr>
<tr><td align="center">
<table align="center" border="0">
<form method="post" action="news.php">
<tr><td align="center">
<textarea rows="25" cols="100" name="detail" class="black"><? include("c-main.txt") ?></textarea>
</td></tr>
<tr><td align="right">
<input type=submit value='แก้ไข' name="submit" class=black>  <input type=reset value='เคลียร์' name="reset" class=black>
</td></tr>
</form>
</table>
</td></tr>
</table>
Read more >>

แบ่งไฟล์ข้อมูลขนาดใหญ่ออกเป็นไฟล์เล็กๆ ด้วย PHP

ในการ upload ข้อมูลเข้าสู่ฐานข้อมูลถ้าข้อมูลมีขนาดใหญ่อาจใช้เวลานานในการ upload หรือในบางครั้งเครื่องอาจจะค้างไปเลยทำให้ต้องเสียเวลา upload ใหม่ ดังนั้นบทความนี้จะขอเสนอโค้ด php ซึ่งเป็นการแบ่งฐานข้อมูลออกเป็นไฟล์เล็กๆ ให้อัปโหลดง่ายขึ้น และก็ยัง query เข้าฐานข้อมูลได้ง่ายขึ้นด้วยครับ
ตัวอย่าง Code php


<?
set_time_limit(0);
$arr = file("C:/articles/articles.sql"); //ไฟล์ข้อมูลหลักที่ต้องการแยก

$records = count($arr);
$split = 1000; //แบ่งออกไฟล์ละ 1000 บรรทัด
$total = (int)($records / $split);
if ($total * $split < $records) $total++;

$n = 0; //ชื่อไฟล์เริ่มต้น C:/0.sql....C:/9.sql
for ($i = 0; $i < $total; $i++) {
  $q = 0;
  $f = fopen("C:/$i.sql", "wb");
  while ($n < $records & $q < $split) {
   fputs($f, $arr[$n]);
   $n++;
   $q++;
  }
  fclose($f);
}
?>

ผลลัพท์จะได้เป็นไฟล์ 0.sql, 1.sql....ไปเรื่อยๆ จนกว่าจะหมด ที่ drive C ครับ ก็ run code นี้ ควรตรวจสอบไดร์ฟ C ให้เรียบร้อยก่อนครับ 

Read more >>

ทำข้อความเตือนยืนยันการลบข้อมูล

การทำ form สำหรับการลบข้อมูลในฐานข้อมูล ในบางครั้งผู้ใช้งานอาจจะเผลอกดปุ่มลบไปโดยไม่รู้ตัวข้อมูลก็จะหายไปในทันที ดังนั้นจึงจำเป็นที่จะต้องมีโค้ดมาช่วยป้องกันอีกชั้น ซึ่งโค้ดก็ไม่ได้มีอะไรมากอาจจะใช้โค้ด php หรือ html ก็ได้แล้วแต่ถนัด
Code php

<form action="xxx.php">
<input type=submit name=submit value=delete onClick='return confirm()'>
</form>

<script language="JavaScript">
function confirm(num)
{
  var x=window.confirm("คุณแน่ใจ ที่จะลบรายการนี้");
  return (x);
}
</script>

ถ้าคลิกตกลงจะไปทำตามคำสั่ง action ของฟอร์มตามปกติ
Read more >>

วิธีการทำ submit form หลายเงื่อนไข

ในการทำ form ขึ้นมา 1 form บางครั้งเราอาจต้องการให้มีปุ่มในการ submit form มากกว่า 1 ปุ่ม เพื่อให้เกิดความหลากหลายในการใช้ปุ่ม submit เช่น ถ้าเราทำ form สำหรับค้นหาข้อมูล เราอาจทำปุ่ม submit หลายปุ่มเพี่อให้เลือกว่าจะค้นหาจากอะไร ดังนี้นในภาษา php จะมีการเขียนโค้ดโดยใช้คำสั่ง if มาใช้ได้ซึ่งโค้ด php ก็ไม่ได้ยุ่งยากอะไรดูตัวอย่างเลยครับ
ตัวย่าง Code php

<?php
    if(isset($_POST['find_username'])) {
        // เมื่อมีการกดปุ่ม submit (find_username)
        echo "ค้นหาจาก Username : $_POST[username]";
    } elseif(isset($_POST['find_email'])) {
        // เมื่อมีการกดปุ่ม submit (find_email)
        echo "ค้นหาจาก Email : $_POST[email]";
    }
    // debug
    // print_r($_POST);
?>

<form action=index.php method=post>
<p><label>Username : <input type=text name=username value=admin></label><input type=submit name=find_username value="Search"></p>
<p><label>Email : <input type=text name=email value=admin@localhost></label>><input type=submit name=find_email value="Search"></p>
</form>

วิธีนี้ เราจะใช้การคัดเลือกว่าต้องการทำอะไรโดยดูจาก name ของปุ่ม submit ครับ ซึ่งฟอร์มจะทำการส่งค่ามาเฉพาะปุ่มที่ถูกกดเท่านั้น ส่วปุ่มที่ไม่ถูกกดจะไม่ส่งค่ามา (ทำนองเดียวกันกับ checkbox ที่ไม่ได้ถูกเลือกครับ) 
Read more >>

24 พ.ค. 2555

ฟังก์ชัน time() อย่างง่าย กับการแสดง เงื่อนไข ช่วงเวลา


ฟังก์ชัน time() ในภาษา php สามารถนำไปประยุกต์ใช้ได้หลายอย่าง ในตัวอย่างนี้คือ ใครที่ต้องการเพิ่มลูกเล่นให้กับ website ของตัวเอง เช่น การเปลี่ยนหน้าตา website ไปตามช่วงเวลา กำหนดแบบอัตโนมัติ หรือจะนำไปประยุกต์ใช้ กับการแสดงข้อมูล ตามช่วงเวลา ตัวอย่างโค้ด php ต่อไปนี้เป็นการประยุกต์ใช้งาน ฟังก์ชัน time() อย่างง่าย โดยอาศัยการเปรียบเทียบค่า timestamp ของช่วงเวลา มาเป็นเงื่อนไข


เช่น ต้องการกำหนด style ให้กับเว็บไซต์ ใน 3 ช่วงเวลา
คือ
1---6.00 น. - 12.00 น.
2---12.01 น.- 18.00 น.
3---เวลานอกจาก 2 ช่วงข้างต้น 18.01-06.00 น.ของวันใหม่

ตัวอย่าง 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>use time function</title>
<?php
if(time()>=strtotime("06:00:00") && time()<strtotime("06:00:00 + 6 hour ")){
$style_period="-period1";
}
if(time()>=strtotime("12:00:00") && time()<strtotime("12:00:00 + 6 hour ")){
$style_period="-period2";
}
if(time()>=strtotime("18:00:00") && time()<strtotime("18:00:00 + 12 hour ")){
$style_period="-period3";
}
?>
<link rel="stylesheet" type="text/css" href="yourstyle<?=$style_period?>.css"/>
</head>

<body>


</body>
</html>

ดังนั้นจากตัวอย่างข้างต้นจำเป็นที่เราต้องมีไฟล์ css 3 ไฟล์น่ะครับ โดยตั้งชื่อไฟล์ดังนี้
yourstyle-period1.css
yourstyle-period2.css
yourstyle-period3.css



Read more >>

ตราจสอบก่อนถึงวันหมดอายุ อย่างง่าย

ในภาษา php จะมีโค้ด php ที่เกี่ยวกับวันที่มากมายซึงเราสามารถนำมาใช้ในการเปรียบเทียบวันที่ เพื่อตรวจสอบวันที่ที่จะหมดอายุของรายการใดรายการหนึ่ง โดยอยู่ในรูปแบบเช่น
รายการ x จะหมดอายุในอีก 30 วัน
รายการ x จะหมดอายุในอีก 15 วัน
รายการ x จะหมดอายุในอีก 7 วัน
เป็นต้น ตัวอย่าง Code php ด่านล้างเลยครับ


<?php
function status_date_notify($endDate){
$chk_day_now=time();
$chk_day_expire=strtotime($endDate);
$chk_day30=strtotime($endDate." -30 day");
$chk_day15=strtotime($endDate." -15 day");
$chk_day7=strtotime($endDate." -7 day");
//  สามารถเพิ่มตัวแปร และเงื่อนไข เพิ่มเติมสำหรับตรวจสอบได้ตามต้องการ
if($chk_day_now>=$chk_day_expire){
return 5; // เงื่อนไขรายการเมื่อหมดอายุ
}else{
if($chk_day_now>=$chk_day30 && $chk_day_now<$chk_day15){
return 4; // เงื่อนไขรายการจะหมดอายุในอีก 30 วัน
}elseif($chk_day_now>=$chk_day15 && $chk_day_now<$chk_day7){
return 3; // เงื่อนไขรายการจะหมดอายุในอีก 15 วัน
}elseif($chk_day_now>=$chk_day7 && $chk_day_now<$chk_day_expire){
return 2; // เงื่อนไขรายการจะหมดอายุในอีก 7 วัน
}else{
return 1; // เงื่อนไขรายการยังไม่หมดอายุ
}
}
}
////////////////////////////////////////////////
//////        ตัวอย่างการประยุกต์ใช้งานอย่างง่าย
//////////////////////////////////////////////////

$case_notify=status_date_notify("2011-01-01");
switch($case_notify){
case 5:
echo "เงื่อนไขรายการเมื่อหมดอายุ";
break;
case 4:
echo "เงื่อนไขรายการจะหมดอายุในอีก 30 วัน";
break;
case 3:
echo "เงื่อนไขรายการจะหมดอายุในอีก 15 วัน";
break;
case 2:
echo "เงื่อนไขรายการจะหมดอายุในอีก 7 วัน";
break;
default:  // กรณีค่าเท่ากับ 1
echo "เงื่อนไขรายการยังไม่หมดอายุ";
break;
}
?>


Read more >>

23 พ.ค. 2555

การจัดรูปแบบให้กับเบอร์โทรศัพท์

สำหรับภาษา php นอกจากการตรวจสอบความถูกต้องของข้อมูล ที่จำเป็นอีกอย่างก็คือ การจัดรูปแบบข้อมูล  เช่น เบอร์โทรศัพท์มือถือ เบอร์โทรศัพท์บ้าน เป็นต้น เหตุผลที่ต้องทำก็เพราะว่าในการกรอกข้อมูลผู้ใช้งานแต่ละคนจะป้อนข้อมูลไม่ค่อยจะเหมือนกันสักเท่าไร ยกตัวอย่างเบอร์โทร บางคนป้อน 08-594908XX บางคนป้อน 085-94908XX และยังอีกอีกแยะ ที่จะสรรหามาป้อนกัน จึงเป็นการจะถูกต้องกว่าถ้าให้เขาป้อนเข้ามาเฉพาะตัวข้อมูลล้วนๆ แล้วค่อยมาเขียนโปรแกรมจัดรูปแบบเอง เอาล่ะเมื่อรู้เหตุแล้ว เรามาจัดรูปแบบเบอร์โทรศัพท์มือถือกัน เราจะให้เบอร์อยู่ในรูปแบบ ### – #### – ###
โค้ด php ที่เราจะใช้คือ substr()


<?php
 
// จัดให้อยู่ในรูปแบบนี้ ### - #### - ### 
 
// สมมติเบอร์นี้
$mobile = "0859490862" ; 
 
// กำหนดเครื่องหมาย 
$minus_sign = "-" ; 
 
// เริ่มจากซ้ายตัวที่ 1 ( 0 ) ตัดทิ้งขวาทิ้ง 7 ตัวอักษร ได้ 085 
$part1 = substr ( $mobile , 0 , -7 ) ; 
 
// เริ่มจากซ้าย ตัวที่ 4 (9) ตัดทิ้งขวาทิ้ง 3 ตัวอักษร ได้ 9490 
$part2 = substr( $mobile , 3 , -3 ) ; 
 
// เริ่มจากซ้าย ตัวที่ 8 (8) ไม่ตัดขวาทิ้ง ได้ 862 
$part3 = substr( $mobile , 7 ) ; 
 
echo $part1. $minus_sign . $part2 . $minus_sign . $part3 ; 
 
?>
Read more >>

เทคนิคง่ายๆ กับการเพิ่มประสิทธิภาพให้ php

ขอแนะนำเทคนิคง่ายๆ สำหรับเพิ่มประสิทธิภาพของโค้ด php มาดูกันครับว่ามีอะไรบ้าง
  1. อย่าไปก้อปปี้ตัวแปรแบบไม่มีเหตุผล การทำอย่างนี้จะทำให้โค้ดของเรากินหน่วยความจำเป็น 2 เท่า
    แย่ :
    $description = $_POST['description'];
    echo $description;
    เยี่ยม :
    echo $_POST['description'];

  2. ใช้เครื่องหมาย ‘ สำหรับข้อความ  สำหรับ PHP นั้น อนุญาตให้ใช้ได้ทั้งเครื่องหมาย ” และ ‘  2 ตัวนี้มีความต่างกันอยู่ตรงที่ ทุกสิ่งที่อยู่ใน ‘…’ คือข้อความเท่านั้น ส่วน “…” สามารถแทรกตัวแปรเข้าไปได้ ตรงนี้แหละที่ทำให้ประสิทธิภาพลดลง เพราะทุกครั้งที่ใช้ “…” PHP จะต้องคอยหาดูว่าภายในมีตัวแปรอยู่หรือเปล่า ส่วน ‘…’ มันไม่สนใจ อะไรที่อยู่ข้างในถือว่าเป็นสตริงหมด
    แย่ :
    $output = "This is a plain string";
    เยี่ยม :
    $output = 'This is a plain string';
    แย่ :
    $type = "mixed";
    $output = "This is a $type string";
    เยี่ยม :
    $type = 'mixed';
    $output = 'This is a ' . $type .' string';
  3. ใช้ echo แทน print  เพราะมันอ่านง่ายกว่า
    แย่ :
    print($myVariable);
    เยี่ยม :
    echo $myVariable;
  4. อย่าใช้การต่อข้อความ ตอน echo  อันที่จริงแล้วคำสั่ง echo นั่นเราสามารถ echo ค่าแบบต่อเนื่องได้โดยการ ใช้คอมม่า (,) คั่นแต่ละค่า มันก็จะ echo ค่าออกมาตามลำดับ ถ้าเราใช้วิธีต่อข้อความก่อน echo มันก็ต้องเสียเวลาต่อข้อความก่อนอีก
    แย่ :
    echo 'Hello, my name is' . $firstName . $lastName . ' and I live in ' . $city;
    เยี่ยม :
    echo 'Hello, my name is' , $firstName , $lastName , ' and I live in ' , $city;
  5. ใช้ switch/case แทน if/else เยี่ยมกว่า อ่านง่ายกว่า และแก้ไขในภายหลังง่ายกว่า
    แย่ :
    if($_POST['action'] == 'add') {
      addUser();
    } elseif ($_POST['action'] == 'delete') {
      deleteUser();
    } elseif ($_POST['action'] == 'edit') {
      editUser();
    } else {
      defaultAction();
    }
    เยี่ยม :
    switch($_POST['action']) {
    case 'add':
      addUser();
      break;
    case 'delete':
       deleteUser();
      break;
    case 'edit':
       editUser();
       break;
    default:
       defaultAction();
       break;
    }
Read more >>

error: Allowed memory size of 25165824 bytes exhausted (tried to allocate 19500140 bytes

error ตัวนี้ แจ้งรายละเอียดมามาว่า Fatal error: Allowed memory size of 25165824 bytes exhausted (tried to allocate 19500140 bytes) in C:\AppServ\www\phpMyAdmin\libraries\unzip.lib.php on line 324
แต่เราไม่ต้องสนใจบรรทัดที่มันเออเร่อ สนใจแค่นี้ก็พอ
Fatal error: Allowed memory size
error ตัวนี้ผมว่า ผู้ฝึกเขียน โค้ด PHP แทบทุกคนจะต้องเจอ ในเ error แจ้งว่า เราอนุญาติให้ใช้หน่วยความจำแค่นี้นะ แต่รู้สึกว่าจะมีการใช้หน่วยความจำเกินที่กำหนดไว้
เหตุกาณ์ที่เกิด มักเกิดตอนที่ประมวลผลไฟล์ขนาดใหญ่ ซึ่ง code php จำเป็นจะต้องใช้หน่วยความจำปริมาณมาก เช่น import ข้อมูลขนาดใหญ่เข้าฐานข้อมูล mysql หรือ ประมวลผลโค้ดสร้างไฟล์ภาพ เป็นต้น
สำหรับวิธีแก้ก็ไม่มีอะไรมาก เราก็แค่กำหนดขนาดของหน่วยความจำ ที่อนุญาติให้ PHP ใช้เสียใหม่ ให้เยอะขึ้น เท่านั้นเอง
1. เปิดไฟล์ C:\Windows\php.ini ขึ้นมา ด้วยโปรแกรม notepad
เสริมนิดหนึ่งว่า ไฟล์ php.ini นี้เป็นไฟล์กำหนดค่าต่างๆของภาษา PHP
2. หาคำว่า memory_limit มันจะอยู่แถวๆบรรทัดที่ 256 แก้ไขตัวเลขหลังเครื่องหมาย = ให้เป็น 256M หรือ 512M เลยก็ได้
3. บันทึก
4. รีสตาร์ท apache
Read more >>

คำนวณอายุจากวันเดือนปีเกิดจากโค้ด php

การคำนวณอายุจากวันเดือนปีเกิดนั้นสามารถทำได้หลายวิธี ซึ่งผมเคยเขียนไว้แล้ว ดูรายละเอียด วิธีนี้เป็นอีกวิธีหนึ่ง เป็นการเขียนโค้ด php ในรูปแบบของฟังก์ชั่น ซึ่งผลลัพธ์ที่ได้จะเป็นจำนวนปี เดือน สัปดาห์ วัน นาที วินาที เรียงไล่ลำดับไป
พารามิเตอร์จะมีสองตัว ตัวแรกให้ส่งวันเกิดเข้าไป ตัวที่สองวันปัจจุบัน โดยพารามิเตอร์ทั้งสองตัว ต้องเป็น timestamp แต่ไม่ต้องกังวลนะครับ ในโค้ดผมได้แสดงตัวอย่างไว้ให้ดูแล้วด้วย ท่านเห็นปุ๊บก็เข้าใจปั๊บ ผมใช้ฟังก์ชั่น strtotime แปลงวันเกิดให้เป็น timestamp ตัวอย่าง code php ก็ด่านล้างเลยครับ

<?php
function timespan($seconds = 1, $time = '')
{
 if ( ! is_numeric($seconds))
 {
  $seconds = 1;
 }
 
 if ( ! is_numeric($time))
 {
  $time = time();
 }
 
 if ($time <= $seconds)
 {
  $seconds = 1;
 }
 else
 {
  $seconds = $time - $seconds;
 }
 
 $str = '';
 $years = floor($seconds / 31536000);
 
 if ($years > 0)
 { 
  $str .= $years.' ปี, ';
 } 
 
 $seconds -= $years * 31536000;
 $months = floor($seconds / 2628000);
 
 if ($years > 0 OR $months > 0)
 {
  if ($months > 0)
  { 
   $str .= $months.' เดือน, ';
  } 
 
  $seconds -= $months * 2628000;
 }
 
 $weeks = floor($seconds / 604800);
 
 if ($years > 0 OR $months > 0 OR $weeks > 0)
 {
  if ($weeks > 0)
  { 
   $str .= $weeks.' สัปดาห์, ';
  }
 
  $seconds -= $weeks * 604800;
 }   
 
 $days = floor($seconds / 86400);
 
 if ($months > 0 OR $weeks > 0 OR $days > 0)
 {
  if ($days > 0)
  { 
   $str .= $days.' วัน, ';
  }
 
  $seconds -= $days * 86400;
 }
 
 $hours = floor($seconds / 3600);
 
 if ($days > 0 OR $hours > 0)
 {
  if ($hours > 0)
  {
   $str .= $hours.' ชั่วโมง, ';
  }
 
  $seconds -= $hours * 3600;
 }
 
 $minutes = floor($seconds / 60);
 
 if ($days > 0 OR $hours > 0 OR $minutes > 0)
 {
  if ($minutes > 0)
  { 
   $str .= $minutes.' นาที, ';
  }
 
  $seconds -= $minutes * 60;
 }
 
 if ($str == '')
 {
  $str .= $seconds.' วินาที';
 }
 
 return substr(trim($str), 0, -1);
}
 
 
// ตัวอย่างการใช้งาน
$birthdate = strtotime( '1973-11-13' );
$today = time();
 
echo timespan( $birthdate , $today );
//36 ปี, 2 เดือน, 3 สัปดาห์, 2 วัน, 4 ชั่วโมง, 51 นาที
?>
เห็นมั้ยครับการใช้ PHP คำนวณอายุนั้นไม่ยากเลย
Read more >>

22 พ.ค. 2555

มาทำลูกศรเลื่อนหน้าเองกัน (Page Scroller)

เป็นการใช้ลูกศรที่เราทำขึ้นเองเลื่อนหน้าเวปเราขึ้น หรือลงแทนการใช้ scrollbar สามารถนำไปประยุกต์ใช้ได้ เช่น ในกรณีที่เราทำ pop up ขึ้นมาแล้วเรากำหนดค่าไม่ให้มี scrollbar เราก็ใช้โค้ดนี้แทนได้
ตัวอย่าง code นำไปไว้ในส่วนของ body


<div id="staticbuttons" style="position:absolute;">
<a href="javascript:" onmouseover="myspeed=-thespeed" onmouseout="myspeed=0"><img
src="arrows_up.gif" border="0"></a><br>
<a href="javascript:" onmouseover="myspeed=thespeed" onmouseout="myspeed=0"><img
src="arrows_dn.gif" border="0"></a>
</div>

<script>

//Page Scroller (aka custom scrollbar)- By Dynamic Drive
//For full source code and more DHTML scripts, visit http://www.dynamicdrive.com
//This credit MUST stay intact for use

var Hoffset=70 //Enter buttons' offset from right edge of window (adjust depending on images width)
var Voffset=80 //Enter buttons' offset from bottom edge of window (adjust depending on images height)
var thespeed=3 //Enter scroll speed in integer (Advised: 1-3)

var ieNOTopera=document.all&&navigator.userAgent.indexOf("Opera")==-1
var myspeed=0

var ieHoffset_extra=document.all? 15 : 0
var cross_obj=document.all? document.all.staticbuttons : document.getElementById? document.getElementById("staticbuttons") : document.staticbuttons

function iecompattest(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function positionit(){
var dsocleft=document.all? iecompattest().scrollLeft : pageXOffset
var dsoctop=document.all? iecompattest().scrollTop : pageYOffset
var window_width=ieNOTopera? iecompattest().clientWidth+ieHoffset_extra : window.innerWidth+ieHoffset_extra
var window_height=ieNOTopera? iecompattest().clientHeight : window.innerHeight

if (document.all||document.getElementById){
cross_obj.style.left=parseInt(dsocleft)+parseInt(window_width)-Hoffset+"px"
cross_obj.style.top=dsoctop+parseInt(window_height)-Voffset+"px"
}
else if (document.layers){
cross_obj.left=dsocleft+window_width-Hoffset
cross_obj.top=dsoctop+window_height-Voffset
}
}

function scrollwindow(){
window.scrollBy(0,myspeed)
}

function initializeIT(){
positionit()
if (myspeed!=0){
scrollwindow()
}
}

if (document.all||document.getElementById||document.layers)
setInterval("initializeIT()",20)

</script>

แล้วก็ save ไฟล้รูปภาพด่านล้างนี้ไปด้วยน่ะครับ





Read more >>

การทำข้อความหยุดชั่วคราวระหว่างที่เลื่อนขึ้น (Pausing up-down Scroller)

เป็นการทำให้ข้อความเลื่อนขึ้นแล้วก็หยุดให้เราอ่านสักพัก แล้วก็เลื่อนเปลี่ยนข้อความใหม่ขึ้นมา วนไปเรื่อย ๆ มันจะเหมือนกับการใช้คำสั่ง marquee แต่ marquee ข้อความจะเลื่อนไปเรื่อย ๆ ไม่ได้หยุดให้เราอ่าน ซึ่งจะอ่านทันไม่ทันก็ขึ้นอยู่กับการหน่วงเวลา แต่สำหรับโค้ดตัวนี้จะหยุดอยู่กับที่สักพักให้เราอ่าน ซึ่งมันจะสะดวกต่อคนอ่านมากกว่า ลองดูโค้ดเลยน่ะครับ

วาง code css นี้ไว้ในส่วนของ <head>
<style type="text/css">

/*Example CSS for the two demo scrollers*/

#pscroller1{
width: 200px;
height: 100px;
border: 1px solid black;
padding: 5px;
background-color: lightyellow;
}

#pscroller2{
width: 350px;
height: 20px;
border: 1px solid black;
padding: 3px;
}

#pscroller2 a{
text-decoration: none;
}

.someclass{ //class to apply to your scroller(s) if desired
}

</style>

<script type="text/javascript">

/*Example message arrays for the two demo scrollers*/

var pausecontent=new Array()
pausecontent[0]='<a href="http://www.javascriptkit.com">JavaScript Kit</a><br />Comprehensive JavaScript tutorials and over 400+ free scripts!'
pausecontent[1]='<a href="http://www.codingforums.com">Coding Forums</a><br />Web coding and development forums.'
pausecontent[2]='<a href="http://www.cssdrive.com" target="_new">CSS Drive</a><br />Categorized CSS gallery and examples.'

var pausecontent2=new Array()
pausecontent2[0]='<a href="http://www.news.com">News.com: Technology and business reports</a>'
pausecontent2[1]='<a href="http://www.cnn.com">CNN: Headline and breaking news 24/7</a>'
pausecontent2[2]='<a href="http://news.bbc.co.uk">BBC News: UK and international news</a>'

</script>

<script type="text/javascript">

/***********************************************
* Pausing up-down scroller- © Dynamic Drive (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for this script and 100s more.
***********************************************/

function pausescroller(content, divId, divClass, delay){
this.content=content //message array content
this.tickerid=divId //ID of ticker div to display information
this.delay=delay //Delay between msg change, in miliseconds.
this.mouseoverBol=0 //Boolean to indicate whether mouse is currently over scroller (and pause it if it is)
this.hiddendivpointer=1 //index of message array for hidden div
document.write('<div id="'+divId+'" class="'+divClass+'" style="position: relative; overflow: hidden"><div class="innerDiv" style="position: absolute; width: 100%" id="'+divId+'1">'+content[0]+'</div><div class="innerDiv" style="position: absolute; width: 100%; visibility: hidden" id="'+divId+'2">'+content[1]+'</div></div>')
var scrollerinstance=this
if (window.addEventListener) //run onload in DOM2 browsers
window.addEventListener("load", function(){scrollerinstance.initialize()}, false)
else if (window.attachEvent) //run onload in IE5.5+
window.attachEvent("onload", function(){scrollerinstance.initialize()})
else if (document.getElementById) //if legacy DOM browsers, just start scroller after 0.5 sec
setTimeout(function(){scrollerinstance.initialize()}, 500)
}

// -------------------------------------------------------------------
// initialize()- Initialize scroller method.
// -Get div objects, set initial positions, start up down animation
// -------------------------------------------------------------------

pausescroller.prototype.initialize=function(){
this.tickerdiv=document.getElementById(this.tickerid)
this.visiblediv=document.getElementById(this.tickerid+"1")
this.hiddendiv=document.getElementById(this.tickerid+"2")
this.visibledivtop=parseInt(pausescroller.getCSSpadding(this.tickerdiv))
//set width of inner DIVs to outer DIV's width minus padding (padding assumed to be top padding x 2)
this.visiblediv.style.width=this.hiddendiv.style.width=this.tickerdiv.offsetWidth-(this.visibledivtop*2)+"px"
this.getinline(this.visiblediv, this.hiddendiv)
this.hiddendiv.style.visibility="visible"
var scrollerinstance=this
document.getElementById(this.tickerid).onmouseover=function(){scrollerinstance.mouseoverBol=1}
document.getElementById(this.tickerid).onmouseout=function(){scrollerinstance.mouseoverBol=0}
if (window.attachEvent) //Clean up loose references in IE
window.attachEvent("onunload", function(){scrollerinstance.tickerdiv.onmouseover=scrollerinstance.tickerdiv.onmouseout=null})
setTimeout(function(){scrollerinstance.animateup()}, this.delay)
}


// -------------------------------------------------------------------
// animateup()- Move the two inner divs of the scroller up and in sync
// -------------------------------------------------------------------

pausescroller.prototype.animateup=function(){
var scrollerinstance=this
if (parseInt(this.hiddendiv.style.top)>(this.visibledivtop+5)){
this.visiblediv.style.top=parseInt(this.visiblediv.style.top)-5+"px"
this.hiddendiv.style.top=parseInt(this.hiddendiv.style.top)-5+"px"
setTimeout(function(){scrollerinstance.animateup()}, 50)
}
else{
this.getinline(this.hiddendiv, this.visiblediv)
this.swapdivs()
setTimeout(function(){scrollerinstance.setmessage()}, this.delay)
}
}

// -------------------------------------------------------------------
// swapdivs()- Swap between which is the visible and which is the hidden div
// -------------------------------------------------------------------

pausescroller.prototype.swapdivs=function(){
var tempcontainer=this.visiblediv
this.visiblediv=this.hiddendiv
this.hiddendiv=tempcontainer
}

pausescroller.prototype.getinline=function(div1, div2){
div1.style.top=this.visibledivtop+"px"
div2.style.top=Math.max(div1.parentNode.offsetHeight, div1.offsetHeight)+"px"
}

// -------------------------------------------------------------------
// setmessage()- Populate the hidden div with the next message before it's visible
// -------------------------------------------------------------------

pausescroller.prototype.setmessage=function(){
var scrollerinstance=this
if (this.mouseoverBol==1) //if mouse is currently over scoller, do nothing (pause it)
setTimeout(function(){scrollerinstance.setmessage()}, 100)
else{
var i=this.hiddendivpointer
var ceiling=this.content.length
this.hiddendivpointer=(i+1>ceiling-1)? 0 : i+1
this.hiddendiv.innerHTML=this.content[this.hiddendivpointer]
this.animateup()
}
}

pausescroller.getCSSpadding=function(tickerobj){ //get CSS padding value, if any
if (tickerobj.currentStyle)
return tickerobj.currentStyle["paddingTop"]
else if (window.getComputedStyle) //if DOM2
return window.getComputedStyle(tickerobj, "").getPropertyValue("padding-top")
else
return 0
}

</script>

แล้วก็วาง code นี้ในส่วนของ <body>
<script type="text/javascript">

//new pausescroller(name_of_message_array, CSS_ID, CSS_classname, pause_in_miliseconds)

new pausescroller(pausecontent, "pscroller1", "someclass", 3000)
document.write("<br />")
new pausescroller(pausecontent2, "pscroller2", "someclass", 2000)

</script>
Read more >>

การแสดงข้อความในแนวตั้ง

การแสดงข้อความในแนวตั้งโดยใช้ CSS เป็นการเพิ่มลูกเล่นในการสร้างเว็บไซต์ของคุณอีกอย่างหนึ่ง ลองมาดูตัวอย่างกันเลยดีกว่า...
การแสดงข้อความแนวตั้งนั้น ไม่ยากอย่างที่คิดเพียงใช้คำสั่ง writing-mode: ตาม code css ตัวอย่างด้านล่าง
<div style="writing-mode: tb-rl">ข้อความแสดงในแนวตั้ง</div>
Read more >>

Star Rating โดยใช้ MooTools Framework

star rating script นี้เป็นการใช้ MooTools ซึ่งเป็น Javascript Framework อีกตัวหนึ่งที่น่าสนใจ สวยงาม ใช้ง่าย และมีลูกเล่นอีกมาก แต่ในบทความนี้จะกล่าวถึง STAR RATING เป็น script ที่น่านำมาประดับเว็บไซต์อีก script
ก่อนอื่นต้อง Download MooTools Framework มาไว้ก่อน โดยดาวน์โหลดได้ที่ MooTools.net
และดาวน์โหลตัวเสริม ได้ที่ MooStarRating
มาดูตัวอย่างการนำ code นี้ไปใช้กันเลยดีกว่า ก่อนอื่นต้องเรียกไฟล์ .js 2 ไฟล์ด้วยกัน ใส่ไว้ในส่วนของ tag <HEAD>


<script type="text/javascript" src="../mootools-1.3.js"></script>
<script type="text/javascript" src="Source/moostarrating.js"></script>


**** ตรวจสอบที่อยู่ไฟล์ให้ถูกต้อง ****
ตมด้วยการกำหนดค่าต่างๆ ใส่ไว้ในส่วนของ tag <HEAD> เช่นกัน


<script>

// Configure the image paths
var MooStarRatingImages = {
defaultImageFolder: 'Graphics/',
defaultImageEmpty:  'star_empty.png',
defaultImageFull:   'star_full.png',
defaultImageHover:  "star_boxed_hover.png"
};

// Post iD
var postId = 10;

// When the DOM is ready....
window.addEvent("domready",function() {

// Create our instance
// Advanced options
var advancedRating = new MooStarRating({
form: 'ratingsForm',
radios: 'rating',
half: true,
//imageEmpty: 'star_boxed_empty.png',
//imageFull:  'star_boxed_full.png',
//imageHover: "star_boxed_hover.png",
width: 17,
tip: 'Rate <I>[VALUE] / 10.0</I>',
tipTarget: $('htmlTip'),
tipTargetType: 'html',
click: function(value) {
// Send ajax request to server
new Request.send({
url: "rating.php",
data: { rating: value, postId: postId }
});
}
});



});

</script>


หลังจากนั้นมาสร้าง Form จะใช้โค้ด php หรือ html ก็ได้แล้วแต่ความถนัด


<form name="ratingsForm">
    <label>Do you like this article?</label>
    <input type="radio" name="rating" value="0.5">
    <input type="radio" name="rating" value="1.0">
    <input type="radio" name="rating" value="1.5">
    <input type="radio" name="rating" value="2.0">
    <input type="radio" name="rating" value="2.5">
    <input type="radio" name="rating" value="3.0">
    <input type="radio" name="rating" value="3.5">
    <input type="radio" name="rating" value="4.0">
    <input type="radio" name="rating" value="4.5">
    <input type="radio" name="rating" value="5.0">
    <input type="radio" name="rating" value="5.5" checked="checked">
    <input type="radio" name="rating" value="6.0">
    <input type="radio" name="rating" value="6.5">
    <input type="radio" name="rating" value="7.0">
    <input type="radio" name="rating" value="7.5">
    <input type="radio" name="rating" value="8.0">
    <input type="radio" name="rating" value="8.5">
    <input type="radio" name="rating" value="9.0">
    <input type="radio" name="rating" value="9.5">
    <input type="radio" name="rating" value="10.0">
  <span id="htmlTip"></span>
</form>





Read more >>

21 พ.ค. 2555

Facebook Lightbox การทำ pop-up แบบ Facebook

การทำ pop-up ตามสไตล์แบบ Facebook โดยใช้ javascript framework Mootools
ก่อนอื่นต้องทำการโหลด javascript framework ที่ชื่อว่า Mootools มาไว้ก่อนโดยโหลดได้ที่ MooTools.net
และดาวน์โหลตัวเสริม ได้ที่ LightFace
หลังจากนั้นมาเริ่มต้นสร้าง Pop-up สไตล์ Facebook ด้วยการเรียกไฟล์ .js 2 ไฟล์ด้วยกัน เป็นไฟล์หลักของ MooTools framework กับอีกไฟล์เป็นไฟล์ที่ใช้สำหรับทำ pop-up facebook style ดังตัวอย่าง ใส่ไว้ในส่วนของ tag <HEAD>
<script type="text/javascript" src="../mootools-1.3.js"></script>
<script type="text/javascript" src="Source/LightFace.js"></script>
และทำการ import css ไฟล์
<style type="text/css">
@import "Assets/LightFace.css";
</style>
**** ตรวจสอบที่อยู่ไฟล์ให้ถูกต้อง ****
ทำการกำหนดค่าเริ่มต้นของ Script โดยกำหนดความกว้าง ความสูง ชื่อ และเนื้อหา
ทำการกำหนดปุ่มสำหรับปิดหน้าต่าง pop-up facebook ของเรา

code javascript

<script type="text/javascript"> 
 window.addEvent('domready',function() {
  // Create instance
  var modal = new LightFace({
   height: 200,
   width: 300,
   title: 'My Profile,
   content: 'Lorem ipsum....',
   buttons: [
     { title: 'Close', event: function() { this.close(); }, color: 'green' }
    ]
   });
  $('profile').addEvent('click',function() { modal.open(); }); //ทำการกำหนดให้แสดง pop up เมื่อมีการคลิก ID="profile"
});
<script>

ในส่วนของ HTML เพียงแค่กำหนด ID ให้กับลิ้งค์ที่จะเรียก pop up ขึ้นมา 
<a href="javascript:;" id="profile">Facebook Lightbox </a>
เพียงเท่านี้ก็เสร็จสิ้นการทำ POP-UP ตามสไตล์ของ FACEBOOK แล้วครับ

Read more >>

Upper / Lower case พิมพ์อักษรตัวเล็ก / ตัวใหญ่


ในการทำแบบฟอร์มของเว็บไซต์ บางครั้งเราก็ต้องการให้ user ใส่เป็นตัวอักษรตัวพิมพ์ใหญ่ทั้งหมด เพื่อต้องการให้อ่านง่าย หรือต้องการให้ใส่เป็นตัวพิมพ์เล็กทั้งหมด การใช้ javascript ก็เป็นอีกหนึ่งทางเลือกที่น่าสนใจ วิธีทำก็ง่ายๆ เพียงสร้าง form ขึ้นมาจะใช้โคัด php ,html ก็ได้แล้วนำ code ด่านล้างไปใส่

ตัวอย่างcode Javascript เปลี่ยนเป็นตัวพิมพ์ใหญ่ (Upper case) กันเลยดีกว่า

<form name="capsform">
<input type="text" name="caps" size=40 value="" onChange="javascript:this.value=this.value.toUpperCase();">
<br>
<input type="button" value="Ok!">
</form>

อีกหนึ่งตัวอย่าง code Javascript ตัวพิมพ์เล็ก (Lower case)
<form name="capsform">
<input type="text" name="caps" size=40 value="" onChange="javascript:this.value=this.value.toLowerCase();">
<br>
<input type="button" value="Ok!">
</form>
Read more >>

18 พ.ค. 2555

สร้าง menu right click เป็นของตัวเอง

การสร้างเมนูคลิกขวาบนเว็บไซต์จะช่วยให้ผู้ใช้งาน เข้าถึงฟังก์ชันการใช้งานของเว็บไซต์ได้รวดเร็วหรือเรียกว่าเป็น short cut หรือทางลัด เพียงแค่คลิกขวา

ตัวอย่าง script นี้เป็นการสร้างเมนูคลิกขวาง่ายๆ และดูสวยงามโดยใช้ firmwork ที่ชื่อว่า Dojo and Dijit ลองมาดูส่วนต่างๆ ของ script กัน

ก่อนอื่นต้องทำการเรียกไฟล์ dojo.xd.js โดยโค้ดด้านล่างนี้

<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojo/dojo.xd.js" type="text/javascript" djConfig="parseOnLoad:true"></script>

*** หรือจะ save ไฟล์ dojo.xd.js มาไว้ในเครื่องก็ได้*** 

ทำการกำหนดค่าของเมนู

<script type="text/javascript">
/* require necessary classes */
dojo.require('dijit.Menu');
dojo.require('dijit.MenuSeparator');
dojo.require('dijit.MenuItem');
dojo.require('dijit.PopupMenuItem');

/* when all classes have loaded... */
dojo.ready(function() {
});

</script>

ทำการ import style sheet

<style type="text/css">
/* bring in the claro theme */
@import "http://ajax.googleapis.com/ajax/libs/dojo/1.5/dijit/themes/claro/claro.css";

/* bring in the grid classes */
@import "http://ajax.googleapis.com/ajax/libs/dojo/1.5/dijit/themes/claro/Menu.css";
</style>

หลังจากนั้นก็ทำการสร้าง Menu ด้วย โค้ด php หรือ โค้ด html ก็ได้

<!-- contentMenu popup --> 
<div dojoType="dijit.Menu" id="submenu1" contextMenuForWindow="true" style="display:none;"> 
 <div dojoType="dijit.MenuItem" id="enabledItem">Enabled Item</div> 
 <div dojoType="dijit.MenuItem" disabled="true">Disabled Item</div> 
 <div dojoType="dijit.MenuSeparator"></div> 
 <div dojoType="dijit.MenuItem" iconClass="dijitIconCut"
  onClick="alert('not actually cutting anything, just a test!')">Cut</div> 
 <div dojoType="dijit.MenuItem" iconClass="dijitIconCopy"
  onClick="alert('not actually copying anything, just a test!')">Copy</div> 
 <div dojoType="dijit.MenuItem" iconClass="dijitIconPaste"
  onClick="alert('not actually pasting anything, just a test!')">Paste</div> 
 <div dojoType="dijit.MenuSeparator"></div> 
 <div dojoType="dijit.PopupMenuItem"> 
  <span>Enabled Submenu</span> 
  <div dojoType="dijit.Menu" id="submenu2"> 
   <div dojoType="dijit.MenuItem" onClick="alert('Submenu 1!')">Submenu Item One</div> 
   <div dojoType="dijit.MenuItem" onClick="alert('Submenu 2!')">Submenu Item Two</div> 
   <div dojoType="dijit.PopupMenuItem"> 
    <span>Deeper Submenu</span> 
    <div dojoType="dijit.Menu" id="submenu4"> 
     <div dojoType="dijit.MenuItem" onClick="alert('Sub-submenu 1!')">Sub-sub-menu Item One</div> 
     <div dojoType="dijit.MenuItem" onClick="alert('Sub-submenu 2!')">Sub-sub-menu Item Two</div> 
    </div> 
   </div> 
  </div> 
 </div> 
 <div dojoType="dijit.PopupMenuItem" disabled="true"> 
  <span>Disabled Submenu</span> 
  <div dojoType="dijit.Menu" id="submenu3" style="display: none;"> 
   <div dojoType="dijit.MenuItem" onClick="alert('Submenu 1!')">Submenu Item One</div> 
   <div dojoType="dijit.MenuItem" onClick="alert('Submenu 2!')">Submenu Item Two</div> 
  </div> 
 </div> 
</div> 
<!-- end contextMenu --> 

สุดท้ายกำหนด class ให้กับ tag <BODY> เป็น <body class="claro"> เท่านี้ก็ได้เมนูคลิกขวาเป็นของตัวเองแล้ว


Read more >>

วิธีแก้ไข pop up ถูกบล็อค

<script type="text/javascript">
<!--
var answer = prompt ("What is your name ?","");
alert ("Hello there, " + answer);
// -->
</script>
จาก code ข้างบนหากเขียน javascript prompt แบบธรรมดา ในปัจจุบันอาจจะต้องถูก block อย่างแน่นอน เนื่องด้วยปัจจุบัน Browser ต่างๆ ล้วนมีระบบรักษาความปลอดภัยอย่างเข้มงวดมากขึ้น ทำอย่างไรดี วันนี้มีทางแก้ไข
ผลลัพธ์ที่ได้จากการเขียน Javascript prompt แบบปกติ แล้วลอง run script นี้ทาง browser คือ
"This website is using a scripted window to ask you for information. If you trust this website, click here to allow scripted windows..."

ตัวอย่างโค้ด
code javascript
<script type="text/javascript">
// This is variable for storing callback function
var ae_cb = null;
// this is a simple function-shortcut
// to avoid using lengthy document.getElementById
function ae$(a) { return document.getElementById(a); }
// This is a main ae_prompt function
// it saves function callback
// and sets up dialog
function ae_prompt(cb, q, a) {
ae_cb = cb;
ae$('aep_t').innerHTML = document.domain + ' question:';
ae$('aep_prompt').innerHTML = q;
ae$('aep_text').value = a;
ae$('aep_ovrl').style.display = ae$('aep_ww').style.display = '';
ae$('aep_text').focus();
ae$('aep_text').select();
}
// This function is called when user presses OK(m=0) or Cancel(m=1) button
// in the dialog. You should not call this function directly.
function ae_clk(m) {
// hide dialog layers
ae$('aep_ovrl').style.display = ae$('aep_ww').style.display = 'none';
if (!m)
ae_cb(null); // user pressed cancel, call callback with null
else
ae_cb(ae$('aep_text').value); // user pressed OK
}
</script>

ต่อไปเป็นส่วนของ CSS เป็นการทำให้แสดง prompt เพื่อใส่ข้อมูล
<style type="text/css">
#aep_ovrl {
background-color: black;
-moz-opacity: 0.7; opacity: 0.7;
top: 0; left: 0; position: fixed;
width: 100%; height:100%; z-index: 99;
}
#aep_ww { position: fixed; z-index: 100; top: 0; left: 0; width: 100%; height: 100%; text-align: center;}
#aep_win { margin: 20% auto 0 auto; width: 400px; text-align: left;}
#aep_w {background-color: white; padding: 3px; border: 1px solid black; background-color: #EEE;}
#aep_t {color: white; margin: 0 0 2px 3px; font-family: Arial, sans-serif; font-size: 10pt;}
#aep_text {width: 100%;}
#aep_w span {font-family: Arial, sans-serif; font-size: 10pt;}
#aep_w div {text-align: right; margin-top: 5px;}
</style>
<!-- IE specific code: -->
<!--[if lte IE 7]>
<style type="text/css">
#aep_ovrl {
position: absolute;
filter:alpha(opacity=70);
top: expression(eval(document.body.scrollTop));
width: expression(eval(document.body.clientWidth));
}
#aep_ww {
position: absolute;
top: expression(eval(document.body.scrollTop));
}
</style>
<![endif]-->

และสุดท้าย เป็นการเรียกใช้ ae_prompt ในส่วนของ HTML. ต้องใส่ให้อยู่ภายใจ tag <body>
สามารถนำไปประยุกต์ใช้ทั้งโค้ด php หรือ โค้ด html
<!-- ae_prompt HTML code -->
<div id="aep_ovrl" style="display: none;">&nbsp;</div>
<div id="aep_ww" style="display: none;">
<div id="aep_win"><div id="aep_t"></div>
<div id="aep_w"><span id="aep_prompt"></span>
<br /><input type="text" id="aep_text" onKeyPress=
"if((event.keyCode==10)||(event.keyCode==13)) ae_clk(1); if (event.keyCode==27) ae_clk(0);">
"if((event.keyCode==10)||(event.keyCode==13)) ae_clk(1); if (event.keyCode==27) ae_clk(0);">
<br><div><input type="button" id="aep_ok" onclick="ae_clk(1);" value="OK">
<input type="button" id="aep_cancel" onclick="ae_clk(0);" value="Cancel">
</div></div>
</div>
</div>
<!-- ae_prompt HTML code -->

ส่วนอันนี้เป็นตัวอย่างการนำไปใช้งาน
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0047)http://www.anyexample.com/files/js/prompt2.html -->
<HTML><HEAD><TITLE>prompt test</TITLE>
<META http-equiv=Content-Type content="text/html; charset=windows-874">
<SCRIPT type=text/javascript>

function hw1()
{
    ae_prompt( hw2, 'คุณชื่ออะไรครับ?', 'ผู้ไม่ประสงค์ออกนาม');
}

function hw2(n)
{
    var hello = document.getElementById('hello');
    hello.innerHTML = '<h1>สวัสดีครับ, คุณ' + n + '!</h1>';
}
// ae_prompt function sources
var ae_cb = null;
function ae$(a) { return document.getElementById(a); }
function ae_prompt(cb, q, a) {
ae_cb = cb;
ae$('aep_t').innerHTML = document.domain + ' คำถามวันนี้:';
ae$('aep_prompt').innerHTML = q;
ae$('aep_text').value = a;
ae$('aep_ovrl').style.display = ae$('aep_ww').style.display = '';
ae$('aep_text').focus();
ae$('aep_text').select();
}
function ae_clk(m) {
ae$('aep_ovrl').style.display = ae$('aep_ww').style.display = 'none';
if (!m) ae_cb(null); else ae_cb(ae$('aep_text').value);
}
// ae_prompt function sources
</SCRIPT>
<!-- CSS styles for ae_prompt function -->
<STYLE type=text/css>#aep_ovrl {
Z-INDEX: 99; LEFT: 0px; WIDTH: 100%; POSITION: fixed; TOP: 0px; HEIGHT: 100%; BACKGROUND-COLOR: black; -moz-opacity: 0.7; opacity: 0.7
}
#aep_ww {
Z-INDEX: 100; LEFT: 0px; WIDTH: 100%; POSITION: fixed; TOP: 0px; HEIGHT: 100%; TEXT-ALIGN: center
}
#aep_win {
MARGIN: 20% auto 0px; WIDTH: 400px; TEXT-ALIGN: left
}
#aep_w {
BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: black 1px solid; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; BORDER-LEFT: black 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: #eee
}
#aep_t {
FONT-SIZE: 10pt; MARGIN: 0px 0px 2px 3px; COLOR: white; FONT-FAMILY: Arial, sans-serif
}
#aep_text {
WIDTH: 100%
}
#aep_w SPAN {
FONT-SIZE: 10pt; FONT-FAMILY: Arial, sans-serif
}
#aep_w DIV {
MARGIN-TOP: 5px; TEXT-ALIGN: right
}
</STYLE>
<!-- IE specific code: --><!--[if lte IE 7]>
<STYLE type=text/css>#aep_ovrl {
FILTER: alpha(opacity=70); ; WIDTH: expression(eval(document.body.clientWidth)); POSITION: absolute; ; TOP: expression(eval(document.body.scrollTop))
}
#aep_ww {
POSITION: absolute; ; TOP: expression(eval(document.body.scrollTop))
}
</STYLE>
<![endif]--><!-- CSS styles for ae_prompt function -->
<META content="MSHTML 6.00.6000.16640" name=GENERATOR></HEAD>
<BODY bgColor=#ffffff><!-- ae_prompt HTML code -->
<DIV id=aep_ovrl style="DISPLAY: none"></DIV>
<DIV id=aep_ww style="DISPLAY: none">
<DIV id=aep_win>
<DIV id=aep_t></DIV>
<DIV id=aep_w><SPAN id=aep_prompt></SPAN><BR><INPUT
onkeypress="if((event.keyCode==10)||(event.keyCode==13)) ae_clk(1); if (event.keyCode==27) ae_clk(0);"
id=aep_text><BR>
<DIV><INPUT id=aep_ok onclick=ae_clk(1); type=button value=OK> <INPUT id=aep_cancel onclick=ae_clk(0); type=button value=Cancel>
</DIV></DIV></DIV></DIV><!-- ae_prompt HTML code -->
<DIV id=hello>สวัสดี! <SPAN
style="CURSOR: pointer; COLOR: blue; TEXT-DECORATION: underline"
onclick=hw1();>คลิกที่นี่</SPAN> เพื่อใส่ชื่อของคุณ. </DIV></BODY></HTML>
Read more >>

17 พ.ค. 2555

code php แสดงบอทมาเก็บข้อมูล

เป็นการใช้ code php เขียนคำสั่งเพื่อแสดงข้อมูลบอทมาเก็บข้อมูลในเวปเรา โดยจะจัดเก็บข้อมูลในรูปของ textfile ให้สร้างไฟล้ขึ้นมาใหม่ตั้งชื่อว่า bots.php แลคัดลอกโค้ดด้านล่างนี้ไปวางได้เลยครับ

โค้ด php


บอทยังไม่ได้มาเก็บข้อมูล";

}else{

$contents = fread($fh, $s);

fclose($fh);

$info = explode("|",$contents);

$day = explode("/",$info[0]);

$m = number_format($day[1]);

$tm = explode(":",$info[1]);

$agent = $info[2];

$ip = $info[3];

$out = "บอทตัวล่าสุดที่เข้ามาเก็บข้อมูล คือ 
 ".$agent ." ($ip) ";

if(date('d',time()) == $day[0]){

$out .= " วันนี้";

}else{

$out .=" เมื่อวันที่ ".$day[0]." ".$month[$m]." ". ($day[2]+543);

}

$out .= " เวลา ". $tm[0]. ".".$tm[1]." น.";

}

echo $out;

}

?>

หลังจากนั้นสร้างไฟล์ bots.txt ขึ้นมาอีกไฟล์เพื่อเก็บข้อมูล จากนั้นเรียกใช้งานด้วยคำสั่ง include ในไฟล์เว็บของท่าน เช่น ที่ footer

Read more >>

16 พ.ค. 2555

Google Maps API V.2 อย่างง่าย ตอนที่ 2 หาพิกัดบนแผนที่ แบบที่ 3

เมื่อวานผมเขียนการหาพิกัดบนแผนที่ของ google maps api แบบที่ 2 แล้วคือพอคลิกที่แผนที่จะมีหน้าต่างขึ้นมาบอกพิกัด และก็ก่อนหน้านี้แบบที่ 1 เมื่อคลิกที่แผนที่ก็จะแสดงพิกัดอยู่ข้างใต้แผนที่ วันนี้ผมขอนำเสนออีกวิธี ซึ่งเป็นวิธีสุดท้ายของผมน่ะครับ คือ

แบบที่ 3 ทำการส่งค่าตำแหน่งที่ทำการคลิก เพื่อส่งข้อมูลไปที่หน้าต่อไป โดยในตัวอย่างนี้จะส่งค่า lat และ lng
  
    ตัวอย่างที่3

เมื่อเราคลิกที่แผนที่ก็จะแสดงหน้าต่างที่จะส่งค่าไปหน้าต่อไป ในหน้าที่รับค่าจะต้องทำการกระกาศค่าตัวแปรก่อนเพื่อให้เรียกใช้งานได้เช่นจากตัวอย่างนี้ส่งค่า lat และ lng ก็ให้ประกาศก่อนด้วยว่า 

$lat = $_GET["lat"];
$lng = $_GET["lng"];
?>
Read more >>

15 พ.ค. 2555

Google Maps API V.2 อย่างง่าย ตอนที่ 2 หาพิกัดบนแผนที่ แบบที่ 2

จากที่ผมเคยเขียนถึงการหาพิกัดแผนที่ใน google maps api ในแบบที่ 1 ไว้แล้ว วันนี้จะเป็นอีกวิธีหนึ่งที่ใช้หาพิกัดแผนที่น่ะครับ

แบบที่ 2 เมื่อคลิกบนแผนที่ให้แสดงหน้าต่างขึ้นมาเพื่อบอกค่าพิกัด

Read more >>

1 พ.ค. 2555

PHP Compare Date/Time ฟังก์ชั่นการเปรียบเทียบเวลา

ตัวอย่างโค้ด



PHP compare date
Screenshot

PHP compare date
Read more >>

Google Maps API V.2 อย่างง่าย ตอนที่ 2 หาพิกัดบนแผนที่ แบบที่ 1

การหาพิกัดในแผนที่ของ google maps api นี้จะมีด้วยกันหลายวิธีน่ะครับลองนำไปใช้ดูแล้วผมจะทยอยเอาวิธีอื่นมาให้ดูอีก

แบบที่ 1 เมื่อมีการขยับแผนที่ให้เก็บค่าจุดกลางแผนที่แล้วทำการแสดงผลค่า Lat Lng อยู่ใต้แผนที่
ตัวอย่างโค้ด



ในส่วนของbodyให้ใส่ <div id="message"></div>เพื่อแสดงผลได้เลย
Read more >>

Google Maps API V.2 อย่างง่าย ตอนที่ 1 บทนำ


ในบทความนี้ผมจะกล่าวถึงการใช้ Google Maps APIอย่างง่ายเพื่อเป็นตัวอย่างให้ผู้สนใจได้ทำขึ้นเพื่อเริ่มต้นทดลองใช้งาน หรือเรียนรู้ทำความเข้าใจในเทคโนโลยของ Google Maps API
ความรู้พื้นฐานเบื้องต้นที่จำเป็นในงานพัฒนา Google Maps mashup ซึ่งควรมี ดังนี้
1. html/ xhtml
2. javascript

เริ่มต้นการ Google Map API
ก่อนอื่นเราต้องทำการยื่นคำขอ API Key สำหรับ URL ของเว็บไซต์ที่จะใช้บริการ Google Maps API เว็บไซต์นั้นเป็นที่ที่เราจะนำเว็บเพจที่มี Google Maps เป็นองค์ประกอบไปวางไว้ หากไม่ใส่ API Key ลงไปจะไม่สามารถใช้บริการ Google Maps API ได้
(URL ที่ยื่นคำขอรับ API Key:- http://www.google.com/apis/maps/signup.html)
*แต่ถ้ารันบนเครื่องผู้ใช้เอง(localhost)ยังไม่จำเป็นต้องใส่ API Key ก็ได้
เค้าโครงของแฟ้มข้อมูล HTML สำหรับการสร้าง Google Maps API อย่างง่าย

โค้ด 

<!DOCTYPE html "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>My Google Maps Mash-up</title>
<script src="http://maps.google.com/maps?file=api&v=2&key=abcdefg..." type="text/javascript"></script>
</head>
<body onload='initialize()' onunload='unloadGmap()'>

<!-- body content here -->
<!-- some javascript here -->

</body>
</html>

คำอธิบาย
<script src="http://maps.google.com/maps?file=api&v=2&key=abcdefg..." type="text/javascript"></script>
ข้อความ v=2คือเป็นพารามีเตอร์ระบุความต้องการขอใช้  Google Maps API เวอร์ชัน 2 เพื่อทำการประมวลผล(ปัจจุบันมีถึงเวอร์ชัน 3)
ข้อความ key=abcdefg... คือจุดที่ใส่ API Key สำหรับ URL ของเว็บไซต์ที่จะใช้บริการ Google Maps API
ในส่วน <!-- body content here --> ควรมี <div id='map_canvas' /> เพื่อทำหน้าที่เป็นกรอบของขอบเขตแสดงแผนที่ และ <!-- some javascript here --> เตรียมไว้เป็นที่ของจาวาสคริปต์ซึ่งจะนำมาแทรกภายหลัง

Read more >>