Author: shikima

ฟังก์ชั่นตรวจสอบอีเมล

เอาไว้ใช้สำหรับตรวจสอบ e-mail ที่ป้อนมาจากฟอร์ม ฟังก์ชั่นจะคืนค่า true ถ้าอีเมล์ที่ป้อนเข้ามาถูกต้อง เพราะฉะนั้นเวลาเอาไปใช้งานก็ต้องใส่ ! ด้วยนะครับ เพราะเราจะเอาค่าที่ตรวจสอบไม่ผ่านเข้าทำงานในเงื่อนไข

    function chkMail(mail){
            var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
            if (filter.test(mail)){
                    return true;
            }
            else{
                    return false;
            }
    }

้เวลาใช้งานก็ตรวจสอบแบบนี้

if (!chkMail($("#email").val())) { // ใช้ jquery ช่วยตรวจสอบด้วย
  alert("อีเมลไม่ถูกต้อง");
  return false;
}

ไม่ยากเลยใช่ไหมครับ

ฟังก์ชั่น str_repleat ของ java script

ปกติ php จะมีคำสั่งสำหรับทวนตัวอักษรแบบง่ายๆ แต่ java sctipt ไม่มี ถ้าอยากให้มีก็ไม่ยาก เอาโค๊ดนี้ไปเลย

    String.prototype.repeat = function(num) {
            return new Array(isNaN(num)? 1 : ++num).join(this);
    }

วิธีใช้ก็

var foo = "hello";
alert(foo.repeat(10));

ไม่ยากเลยใช่ไหม

window.open

    <script type="text/javascript" language="javascript">
    function popUpWindow(sURL, sName, width, height, menu, resize, scrollbar, status, title, toolbar)
    {
            // Detect Default Value
            menu = typeof(menu) == 'undefined'?0:menu;
            resize = typeof(resize) == 'undefined'?0:resize;
            scrollbar = typeof(scrollbar) == 'undefined'?0:scrollbar;
            status = typeof(status) == 'undefined'?0:status;
            title = typeof(title) == 'undefined'?0:title;
            toolbar = typeof(toolbar) == 'undefined'?0:toolbar;
            ////////////////////////////////////////////////////////////////
           
            screenwidth = window.screen.width;
            screenheight = window.screen.height;
           
            var left = (screenwidth/2) - (width/2);
            var top = (screenheight/2) - (height/2);
           
            var newwin = window.open(sURL, sName, "top=" + top + ", left=" + left + ", height="+ height + ", width=" + width + ", menubar=" + menu + ", resizable=" + resize + ", scrollbars=" + scrollbar + ", status=" + status + ", titlebar=" + title + ", toolbar=" + toolbar + "");
            newwin.focus();
    }
    </script>

number only สำหรับ textbox

เขียนไว้นานแล้ว เอาไว้สำหรับตรวจสอบ text box ให้ป้อนข้อมูลเป็นตัวเลขเท่านั้น

เอาตรงนี้ไปใส่ไว้ใน <head> ก่อน

    function numbersonly(e){
            var unicode=e.charCode? e.charCode : e.keyCode;
            if (unicode!=8){
                    if(unicode<48 || unicode>57){
                            return false
                    }
            }
    }

ตอนใช้งานก็เขียนแบบนี้

<input type=”text” onKeyPress=”return numbersonly(event)” />

สามารถใช้กับ type อื่นๆ เช่น number หรือ tel ก็ได้นะครับ html5 มี type ของ textbox เพิ่มขึ้นเยอะเลย

ฟังก์ชั่น number_format สำหรับ java script

ปกติใน PHP จะมีฟังก์ชั่น number_format() สำหรับเติ่มเครื่องหมาย , ให้กับตัวเลข และช่วยปัดเศษของทศนิยมตามตำแหน่งที่เราต้องการได้ด้วย แต่ว่า AJAX มันเป็น Java Script แล้วมันดันไม่มีฟังก์ชั่นนี้ด้วยสิ จะโยนให้ PHP ผ่าน XMLHttp ก็ใช่เรื่อง เลยเขียนเองเลยดีกว่า

มั่วไป มั่วมาก็ได้ตามนี้แหละครับ

<script type="text/javascript">
   function number_format (number, decimals, dec_point, thousands_sep) {
      var exponent = "";
      var numberstr = number.toString ();
      var eindex = numberstr.indexOf ("e");
      if (eindex > -1) {
         exponent = numberstr.substring (eindex);
         number = parseFloat (numberstr.substring (0, eindex));
      }
      if (decimals != null) {
         var temp = Math.pow (10, decimals);
         number = Math.round (number * temp) / temp;
      }
      var sign = number < 0 ? "-" : "";
      var integer = (number > 0 ? Math.floor (number) : Math.abs (Math.ceil (number))).toString ();
      var fractional = number.toString ().substring (integer.length + sign.length);
      dec_point = dec_point != null ? dec_point : ".";
      fractional = decimals != null && decimals > 0 || fractional.length > 1 ? (dec_point + fractional.substring (1)) : "";
      if (decimals != null && decimals > 0) {
         for (i = fractional.length - 1, z = decimals; i < z; ++i) {
            fractional += "0";
         }
      }
      thousands_sep = (thousands_sep != dec_point || fractional.length == 0) ? thousands_sep : null;
      if (thousands_sep != null && thousands_sep != "") {
         for (i = integer.length - 3; i > 0; i -= 3){
            integer = integer.substring (0 , i) + thousands_sep + integer.substring (i);
         }
      }
      return sign + integer + fractional + exponent;
   }
</script>

วิธีการเรียกใช้งานก็ง่ายๆ เลยครับ
number_format(ตัวเลข, จำนวนทศนิยม, เครื่องหมายทศนิยม, เครื่องหมายหลักพัน);

เช่น จะเอาตัวเลข 20,000.00 ก็เขียนประมาณนี้ครับ

number_format(20000,2,’.’,’,’);

สั้นๆ ง่ายๆ แต่มีประโยชน์เหลือหลายครับ

เอาไปใช้กันได้ ไม่หวงครับ

ความแตกต่างระหว่าง isset กับ array_key_exists

รอบนี้ก็มีทิปง่ายๆ แต่มีประโยชน์แน่นอน

ในการเขียนโปรแกรม PHP บางครั้งเราต้องมีการตรวจสอบตัวแปรว่ามีอยู่หรือไม่ คำสั่งที่เราบ่อยๆ ก็คือ isset() คำสั่งนี้สามารถเช็คได้ทั้ง ตัวแปร และ อาเรย์สำหรับตัวแปรนั้นผลลัพท์ที่ได้ก็ตรงไปตรงมาคือ true กับ false แต่สำหรับ อาเรย์ เราจะใช้คำสั่งนี้ในการตรวจสอบว่ามี คีย์ หรือ อินเด็กซ์ นี้อยู่ภายในอาเรย์หรือไม่การตรวจสอบอาเรย์สามารถใช้คำสั่ง array_key_exists() ได้ด้วยเหมือนกัน แต่ความแตกต่างระหว่างสองคำสั่งนี้คือ ถ้าหากค่าที่เก็บเป็น NULLคำสั่ง isset() จะคืนค่าเป็น false แต่คำสั่ง array_key_exists() จะคืนค่าเป็น true

ลองดูตัวอย่างได้ครับ

<?php
$a = 10;

isset($a)  // true
isset($z)  // false

$b = array('a' => 10, 'b' => NULL);
isset($b['a'])  // true
isset($b['a'])  // false

array_key_exists('a', $b)  // true
array_key_exists('b', $b)  // true

$c = NULL
isset($c)  // NULL
?>

สังเกตได้ว่าคำสั่ง isset จะตรวจสอบตัวแปรที่มีค่าเก็บไว้เท่านั้น ถ้าหากเป็น NULL คำสั่ง isset ก็จะคืนค่าเป็น false อยู่ดี

mobile detect สำหรับ php แบบง่ายๆ

ตอนนี้มือถือหรือ tablet กำลังเป็นที่นิยมมากมาย เวลาเขียนเว๊ปส่วนใหญ่เราก็จะแยกเป็นหน้าสำหรับมือถือซึ่งเราก็ต้องทำการตรวจสอบก่อนว่าคนที่เข้ามาดูใช้มือถือหรือ tablet หรือเข้ามาจาก pc ปกติ สำหรับคนที่ตั้ง server เอง เราสามารถลงโมดูล Apache Mobile Filter แล้วไปจับที่ AMFLightDetectionFilter แทน แต่ถ้าเราเช่าพื้นที่จากคนอื่นละ ก็ไม่ยากเลย ใช้ php นี่แหละจับเอา โดยจับเอาจากตัวแปร $_SERVER[‘HTTP_USER_AGENT’] แล้วเราก็มาแยกเอาว่าเป็นอุปกรณ์มือถือหรือเปล่าจากตรงนี้ได้ Continue reading

ทำตารางสลับสีแนวตั้ง

จาก entry คราวที่แล้วเรื่องทำตารางสลับสีแบบง่ายๆ ก็เลยเกิดความสงสัยขึ้นมาว่า ถ้าจะทำตารางสลับสีแนวตั้งละ มันจะทำได้ไหม ถ้าคิดอะไรไม่ออกก็คงต้องใช้ php ลงสีเอาอีกแน่ๆ

แบบนี้แหละที่เราต้องการ ถ้าเขียนโค๊ดก็คงประมาณนี้

<table width="100%" border="1" cellspacing="0" cellpadding="0">
  <tr>
    <td>COL1</td>
    <td bgcolor="#CCCCCC">COL2</td>
    <td>COL3</td>
    <td bgcolor="#CCCCCC">COL4</td>
    <td>COL5</td>
  </tr>
  <tr>
    <td>01</td>
    <td bgcolor="#CCCCCC">11</td>
    <td>21</td>
    <td bgcolor="#CCCCCC">31</td>
    <td>41</td>
  </tr>
  <tr>
    <td>02</td>
    <td bgcolor="#CCCCCC">12</td>
    <td>22</td>
    <td bgcolor="#CCCCCC">32</td>
    <td>42</td>
  </tr>
  <tr>
    <td>03</td>
    <td bgcolor="#CCCCCC">13</td>
    <td>23</td>
    <td bgcolor="#CCCCCC">33</td>
    <td>43</td>
  </tr>
</table>

ซึ่งมันดู… ธรรมดามากๆ แถมยังแก้ไขยากอีก ถ้าต้องการเปลี่ยนสีจาก CCC เป็นสีอื่นละ แล้วถ้ามันมีสัก 500 เซล… งานงอกกันทีเดียว Continue reading

ตารางสลับสีแบบง้าย ง่าย

ปกติเวลาเราสร้างตาราง (table) สำหรับขึ้นมาสักอันหนึ่ง แล้วเราต้องการแยกสีสำหรับแต่ละแถว เราก็อาจจะเขียนโค๊ดในการวนลูปเพื่อให้แต่ละแถวมีสีไม่เหมือนกัน แต่ถ้าหากเราไม่สามารถให้สามารถวนลูปได้ คือ server รัน php หรือ asp ไม่ได้ เราจะมีวิธีแก้ปัญหายังไงดี

ง่ายๆ เลย ก็ใส่สีในแต่ละแถวไปเลยสิ (ง่ายไหม)

<table width="300" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <th scope="col" width="33%">ช่องที่</th>
    <th scope="col" width="33%">ตัวหนังสือ</th>
    <th scope="col">ภาษาไทย</th>
  </tr>
  <tr bgcolor="#999">
    <td>1</td>
    <td>A</td>
    <td>ก</td>
  </tr>
  <tr>
    <td>2</td>
    <td>B</td>
    <td>ข</td>
  </tr>
  <tr bgcolor="#999">
    <td>3</td>
    <td>C</td>
    <td>ฃ</td>
  </tr>
  <tr>
    <td>4</td>
    <td>D</td>
    <td>ค</td>
  </tr>
  <tr bgcolor="#999">
    <td>5</td>
    <td>E</td>
    <td>ฅ</td>
  </tr>
  <tr>
    <td>6</td>
    <td>F</td>
    <td>ฆ</td>
  </tr>
  <tr bgcolor="#999">
    <td>7</td>
    <td>G</td>
    <td>ง</td>
  </tr>
  <tr>
    <td>8</td>
    <td>H</td>
    <td>จ</td>
  </tr>
  <tr bgcolor="#999">
    <td>9</td>
    <td>I</td>
    <td>ฉ</td>
  </tr>
</table>

ได้แบบนี้เลย
cmdevhub Continue reading

สามจีไทย ทำไมมันใช้ยากนักหนา

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

มาตรฐานสามจีของประเทศไทยมีสองระบบคือ CDMA สำหรับค่าย hutch เดิมหรือตอนนี้กลายเป็น Truemove H ไปแล้ว กับระบบ HSPA ที่เป็นระบบของค่ายอื่นๆ ที่ใช้งานกันอยู่แล้วก็เป็นระบบที่มีอยู่ในโทรศัพท์มือถือแทบทุกเครื่องที่ใช้งานสามจีได้อยู่แล้ว

แต่ปัญหามันไม่ใช่แค่นี้สิ มาตรฐานโลกสามจีเขาใช้งานกันที่ความถี่ 900MHz กับ 2100MHz แต่เนื่องจากมีแมวมาขวางโลกอยู่ทำให้การประมูลคลื่น 2100MHz เมื่อปี 2553 ไม่สามารถทำได้ ดึงเรื่องมาจนปี 2555 ก็ยังคงไม่เริ่มการประมูลเสียที ทำให้ผู้ให้บริการแต่ละรายต้องใช้วิธีซิกแซกใช้ความถี่อันน้อยนิดของตัวเองมาให้บริการสามจี สำหรับ AIS นั้นไม่มีปัญหาอยู่แล้วเพราะเดิมได้ให้บริการมือถือบนความถี่ 900MHz ก็เลยสามารถให้บริการสามจีบนความถี่นี้ได้ทันที แต่สำหรับ Truemove และ Dtac เดิมทีได้ให้บริการบนความถี่ 1800MHz แต่พอมาใช้งานสามจีแล้ว จำเป็นต้องเปลี่ยนมาใช้ที่ 850MHz แทน เนื่องจากอุปกรณ์ที่รองรับ HSPA 1800MHz มีไม่มาก Continue reading