สำหรับตัวอย่างฟังก์ชั่นต่อไปนี้ เป้นแนวทางการสร้างฟังก์ชั่น สำหรับใช้ในการ
ตรวจสอบตัวแปร GET ที่ส่งมากับ url ด้วย javascript ใช้สำหรับ บางกรณี
ที่เราไม่ต้องการใช้ PHP ในการตรวจสอบ หรือไม่สามารถใช้ PHP ตรวจสอบได้เพราะอยู่ในไฟล์ javascript
ฟังก์ชั่นนี้จึงสามารถนำมาใช้แทนได้
ตัวอย่างโค้ด และฟังก์ชั่น
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | <!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 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 มาหรือไม่
ก็จะใช้เป็น
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?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 เราก็จะใช้ฟังก์ชั่นข้างต้นแทน
รูปแบบคือ
1 | _get( 'ชื่อตัวแปรที่ต้องการ' ) |
ตัวอย่าง url www.ninenik.com/test.php?a=1&b=2
1 2 3 | _get( 'a' ) // จะได้ค่าของตัวแปร a เท่ากับ 1 _get( 'b' ) // จะได้ค่าของตัวแปร a เท่ากับ 2 _get( 'code' ) // จะได้ค่า null เพราะไม่มีตัวแปรนี้ |
ตัวอย่างการใช้ในการตรวจสอบ
1 2 3 4 5 6 | if (_get( 'a' ) && _get( 'b' )){ // ใช้ตรวจสอบ ถ้ามีการส่งค่าของตัวแปร a และ b console.log( "OK" ); } if (_get( 'a' ) || _get( 'b' )){ // ใช้ตรวจสอบ ถ้ามีการส่งค่าของตัวแปร a หรือ b console.log( "OK" ); } |
เท่านี้เราก็สามารถนำไปประยุกต์เพิ่มเติมได้