สำหรับตัวอย่างฟังก์ชั่นต่อไปนี้ เป้นแนวทางการสร้างฟังก์ชั่น สำหรับใช้ในการ
ตรวจสอบตัวแปร GET ที่ส่งมากับ url ด้วย javascript ใช้สำหรับ บางกรณี
ที่เราไม่ต้องการใช้ PHP ในการตรวจสอบ หรือไม่สามารถใช้ PHP ตรวจสอบได้เพราะอยู่ในไฟล์ javascript
ฟังก์ชั่นนี้จึงสามารถนำมาใช้แทนได้
ตัวอย่างโค้ด และฟังก์ชั่น
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<br>
<br>
<div class="container" style="width:300px;margin:auto;">
</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
var _get = function(val){
var result = null; // กำหนดค่าเริ่มต้นผลลัพธ์
tmp = []; // กำหนดตัวแปรเก็บค่า เป็น array
// เก็บค่า url โดยตัด ? อันแรกออก แล้วแยกโดยตัวแบ่ง &
var items = location.search.substr(1).split("&");
for(var index = 0; index < items.length; index++) { // วนลูป
tmp = items[index].split("="); // แยกระหว่างชื่อตัวแปร และค่าของตัวแปร
// ถ้าค่าที่ส่งมาตรวจสอบชื่อตัวแปรตรง ให้เก็บค่าผลัพธ์เป็นค่าของตัวแปรนั้นๆ
if(tmp[0] === val) result = decodeURIComponent(tmp[1]);
}
return result; // คืนค่าของตัวแปรต้องการ ถ้าไม่มีจะเป็น null
}
console.log(_get('code')); // ได้ค่า null
console.log(_get('a')); // ได้ค่าของตัวแปร a
console.log(_get('b')); // ได้ค่าของตัวปร b
if(_get('a') && _get('b')){ // ใช้ตรวจสอบ ถ้ามีการส่งค่าของตัวแปร a และ b
console.log("OK");
}
if(_get('a') || _get('b')){ // ใช้ตรวจสอบ ถ้ามีการส่งค่าของตัวแปร a หรือ b
console.log("OK");
}
});
</script>
ตัวอย่างสมมติ ประกอบการอธิบาย
สมมติว่า url ของเราคือ www.ninenik.com/test.php?a=1&b=2
ปกติถ้าเราต้องการตรวจสอบด้วย PHP ว่ามีการส่งค่าตัวแปร GET มาหรือไม่
ก็จะใช้เป็น
<?php
if(isset($_GET['a']) && $_GET['a']!=""){ // ตัวแปร a แบบ GET
}
if(isset($_GET['b']) && $_GET['b']!=""){// ตัวแปร b แบบ GET
}
if(isset($_GET['a']) && $_GET['a']!="" && isset($_GET['b']) && $_GET['b']!=""){// ตัวแปร a และ b แบบ GET
}
if((isset($_GET['a']) && $_GET['a']!="") || (isset($_GET['b']) && $_GET['b']!="")){// ตัวแปร a หรือ b แบบ GET
}
แต่สมมติว่า เราต้องใช้คำสั่งการตรวจสอบในในไฟล์ javascript เราก็จะใช้ฟังก์ชั่นข้างต้นแทน
รูปแบบคือ
_get('ชื่อตัวแปรที่ต้องการ')
ตัวอย่าง url www.ninenik.com/test.php?a=1&b=2
_get('a') // จะได้ค่าของตัวแปร a เท่ากับ 1
_get('b') // จะได้ค่าของตัวแปร a เท่ากับ 2
_get('code') // จะได้ค่า null เพราะไม่มีตัวแปรนี้
ตัวอย่างการใช้ในการตรวจสอบ
if(_get('a') && _get('b')){ // ใช้ตรวจสอบ ถ้ามีการส่งค่าของตัวแปร a และ b
console.log("OK");
}
if(_get('a') || _get('b')){ // ใช้ตรวจสอบ ถ้ามีการส่งค่าของตัวแปร a หรือ b
console.log("OK");
}
เท่านี้เราก็สามารถนำไปประยุกต์เพิ่มเติมได้