ปกติเราจะเขียนแค่
<body>
แต่ถ้าแก้ไขเป็น
<body oncontextmenu=”return false;”>
แค่นี้ก็กด click ขวาไม่ได้แล้วแหละ ง่ายไหม
จริงๆ มันเป็น html มากกว่าเนอะ ไม่ใช่ javascript เลยอ่ะ
โปรแกรมที่ไม่มีบั๊กคือโปรแกรมที่ยังไม่ได้เขียน
ปกติเราจะเขียนแค่
<body>
แต่ถ้าแก้ไขเป็น
<body oncontextmenu=”return false;”>
แค่นี้ก็กด click ขวาไม่ได้แล้วแหละ ง่ายไหม
จริงๆ มันเป็น html มากกว่าเนอะ ไม่ใช่ javascript เลยอ่ะ
เอาไว้ใช้สำหรับตรวจสอบ 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; }
ไม่ยากเลยใช่ไหมครับ
ปกติ php จะมีคำสั่งสำหรับทวนตัวอักษรแบบง่ายๆ แต่ java sctipt ไม่มี ถ้าอยากให้มีก็ไม่ยาก เอาโค๊ดนี้ไปเลย
String.prototype.repeat = function(num) { return new Array(isNaN(num)? 1 : ++num).join(this); }
วิธีใช้ก็
var foo = "hello"; alert(foo.repeat(10));
ไม่ยากเลยใช่ไหม
<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>
เขียนไว้นานแล้ว เอาไว้สำหรับตรวจสอบ 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 เพิ่มขึ้นเยอะเลย
ปกติใน 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,’.’,’,’);
สั้นๆ ง่ายๆ แต่มีประโยชน์เหลือหลายครับ
เอาไปใช้กันได้ ไม่หวงครับ
รอบนี้ก็มีทิปง่ายๆ แต่มีประโยชน์แน่นอน
ในการเขียนโปรแกรม 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 อยู่ดี
ตอนนี้มือถือหรือ 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>
ได้แบบนี้เลย
Continue reading