ปกติเราจะเขียนแค่
<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>
ได้แบบนี้เลย
