Wirada Blog

Witty tagline

JSON กับ jQuery เป็นญาติกันล่ะมั้งนะ

January 19th, 2018

ถ้าเราเคยเล่น AJAX กับ PHP โดยใช้ jQuery จะเห็นว่า เราแทบจะเลี่ยงไม่ได้เลยที่จะต้องใช้ JSON เพราะตอนส่งข้อมูลจาก PHP ที่ประมวลผลแล้วกลับมายัง jQueryScript น่ะ มันส่งโดยการแสดงผล นั่นคือ การทำงานแต่ละครั้งมันดาต้าได้แค่ก้อนเดียว และ JSON มันช่วยให้ดาต้าก้อนนั้นมันมีรายละเอียดเอาไปแยกเป็นส่วนได้ง่ายๆ มันจึงเป็นคำตอบที่ตรงประเด็นที่สุด

JSON คือ อะไร ช่างหัวมันเถอะ แต่ใช้ยังไงนี่ตะหากน่าสนใจ สรุปคือ มันใช้ส่งข้อมูลแบบ Array ในรูปแบบเฉพาะของมัน ดังนี้
1- แบบไม่มีชื่อตัวแปร
[ “ค่าที่0″,”ค่าที่1″,”ค่าที่2” .. ไปเรื่อยๆจนพอใจ แล้วปิดด้วย ] วงเล็บเหลี่ยมๆนะ ไม่ใช่ปีกกา
ตอนjQuery อ่านค่าก็จะลงเป็น Array เช่น data[0] หรือ data[1] เป็นต้น
2- แบบมีชื่อตัวแปร
{ “ชื่อตัวแปร1″:”ค่าของตัวแปร1”, “ชื่อตัวแปร2″:”ค่าของตัวแปร2” .. ไปเรื่อยๆจนพอใจ แล้วปิดด้วย }
อ่านด้วย jQuery ก็จะเป็น data.ชื่อตัวแปร1 หรือ data.ชื่อตัวแปร2 อะไรอย่างนี้ เป็นต้น
แค่นี้แหละ ก็คือ รูปแบบมันใช้ง่าย คนเลยนิยม

คราวนี้ถ้าเราเขียนเป็น PHP ก็อาจจะได้ว่า echo “{\”ชื่อตัวแปร1\”:\”ค่าตัวแปร1\”,\”ชื่อตัวแปร2\”:\”ค่าตัวแปร2\”}”; อะไรอย่างนี้ แต่ว่า จริงๆแล้ว PHPรุ่นใหม่ๆ จะมีฟังก์ชั่นให้คือ json_encode() รายละเอียดไปดูใน PHP.NET เอาเองนะ แต่ถ้าจะเอาคร่าวๆก็พอจะได้ว่า มันแปลง Array ให้อยู่ในรูปของ JSON ดังนั้น เราก็สร้าง Array เอาค่าใส่ไปใน Array แล้วก็ Encode ซะ ก็ใช้ได้แล้ว

ลองทำโปรแกรมง่ายๆละกัน ให้ใส่ชื่อ และนามสกุล จากนั้น โปรแกรมก็แยกชื่อ กับนามสกุลออกจากกัน มาแสดงคนละบรรทัด จะได้เห็นวิธีใช้ JSON อย่างชัดเจน
—-
index.php ก๊อปจากตัวอย่างคราวที่แล้ว มาเติมจุดแสดงผลเพิ่มอีกจุด ถ้าจะก๊อบไปลองอย่าลืมเซฟเป็น utf8 นะ ไม่งั้นมันจะเป็นตัวยึกยือ
—-


<?php echo date("m/d/Y H:i:s"); ?>
<p>กรุณาป้อน ชื่อ - สกุล <input id="aaa" name="aaa" type="text" data-constant="test" autofocus /></p>
<p>ชื่อของคุณคือ <div id="bbb"></div></p>
<p>และนามกุลของคุณก็คือ <div id="ccc"></div></p>
<script src="https://code.jquery.com/jquery-3.2.1.js">
</script><script src="ajax.js"></script>


ajax.js ก๊อปมาอีกเช่นกัน แต่เพิ่มเติมนิดหน่อยเพื่อใช้ JSON


$('#aaa').keyup(function(e){
   var key = e.which;
   var kk1 = $('#aaa').val();
   var kk2 = $('#aaa').attr('data-constant');

   if( key > 0 ){ 
      $.post('ajax.php',{ kk1: kk1 , kk2: kk2 }, function(data){
         $('#bbb').html(data.nm);
         $('#ccc').html(data.snm);
      },'json');
   }
});


ajax.php ก๊อปมาอีกเช่นกัน แต่เพิ่มขั้นตอนประมวลผลและส่งผลลัพท์แบบ JSON


<?php

# ตรงนี้รับข้อมูล ตัวแปรมีกี่ตัวก็ใส่เข้าไปให้ครบ

$kk1=$_POST["kk1"];
$kk2=$_POST["kk2"];

#ตรงนี้แยกชื่อสกุลออกจากกัน
$array1 = explode(" ",$kk1);

#ตรงนี้ส่งผลลัพท์กลับไปยัง ajax.js
#ถ้าเป็น PHP 5 ขึ้นไป มี json_encode แล้ว ก็อาจใช้  echo json_encode($array1); ก็ได้ แต่ไปแก้ ajax.js ให้ใช้วิธีอ่านแบบไม่มีชื่อตัวแปร
#แต่ถ้าส่งเองไม่ใช้ฟังก์ชั่น ก็ทำได้ดังนี้ 
echo "{\"nm\":\"$array1[0]\",\"snm\":\"$array1[1]\"}";

?>

จบนะครับ

Ajax Php แบบ ง่ายๆ โดยใช้ JQuery

December 28th, 2017

คิดว่า ทุกคนรู้จักอยู่แล้ว ทั้ง Ajax , PHP, JQuery ดังนั้นจะไม่อธิบายทีละตัวให้เสียเวลา เริ่มกันเลยดีกว่า

จะตั้งตัวอย่างคือ เราจะสร้าง input text ขึ้นมา เพื่อรับข้อมูล และจะส่งข้อมูลไปประมวลผลอะไรนิดหน่อย จากนั้นก็เอากลับมาแสดง ในช่องที่ต้องการ

ไฟล์ตัวแรก เป็นตัวที่พบหน้าผู้คน ในที่นี้ขอให้ชื่อว่า index.php
ไฟล์นี้ทำหน้าที่แค่สร้างกล่องอินพุท และ จุดแสดงผล

ไฟล์ตัวที่สองขอตั้งชื่อว่า ajax.js เป็นไฟล์ JQuery ทำหน้าที่จับอีเวนท์และรับข้อมูล จากนั้นก็ส่งเข้า ประมวลผลในไฟล์ตัวที่สาม ให้ชื่อว่า ajax.php และส่งผลกลับมาแสดงในไฟล์ที่1

———————————-
ไฟล์ตัวแรก index.php ลองให้ส่งตัวแปรConstantไปด้วย ตรงคำว่า test น่ะ เปลี่ยนเป็นอะไรก็ได้
———————————-


<?php echo date("m/d/Y H:i:s"); ?>
<input id="aaa" name="aaa" type="text" data-constant="test" autofocus />
<div id="bbb"></div>
<script src="https://code.jquery.com/jquery-3.2.1.js">
</script><script src="ajax.js"></script>

———————————-
ไฟล์ตัวที่สอง ajax.js ชื่อตัวแปรตามใจชอบ
———————————-


$('#aaa').keyup(function(e){
   var key = e.which;
   var kk1 = $('#aaa').val();
   var kk2 = $('#aaa').attr('data-constant');

   if( key > 0 ){
      $.post('ajax.php',{ kk1: kk1 , kk2: kk2 }, function(data){
         $('#bbb').html(data);
      });
   }
});

———————————-
ไฟล์ตัวที่สาม ajax.php เอาง่ายๆเลย แค่รับมาแล้วก็ส่งออกแสดง
———————————-


<?php

# ตรงนี้รับข้อมูล ตัวแปรมีกี่ตัวก็ใส่เข้าไปให้ครบ

$kk1=$_POST["kk1"];
$kk2=$_POST["kk2"];

#ตรงนี้ส่งข้อมูล ง่ายดีไม๊ล่ะ

echo "$kk2 : $kk1";

?>

แค่นี้แหละ

มี กับ ไม่มี ที่แท้ คือ สิ่งเดียวกัน คือ ไม่มี

November 7th, 2017

โลกธรรมมันเป็นคู่ๆคือ มีลาภ เสื่อมลาภ มียศ เสื่อมยศ สรรเสริญ นินทา สุข ทุกข์ แท้จริง ก็เหมือน ความร้อนกับความหนาว ที่จริงคือสิ่งเดียวกัน คือ อุณหภูมิมากน้อย รวยจน ก็แค่มีเงินมากน้อย ยศศักดิ์ก็อุปโลกขึ้นมาตามอำนาจหน้าที่ หมดเวลา หมดหน้าที่ ก็หมดประโยขน์ สรรเสริญนินทา ก็แค่ความนิยมเป็นบวกเป็นลบ ก็เรื่องเดียวกันทั้งนั้น และสุขทุกข์ล่ะ พระท่านก็ว่าเป็นเรื่องเดียวกันอีกเหมือนกัน ทุกข์มาก กับ ทุกข์น้อย

มีลาภ เสื่อมลาภ มียศเสื่อมยศ หรือความนิยมจะเป็นบวกเป็นลบ ก็เรื่องเดียวกัน พื้นฐานจริงๆก็คือ ไม่มี คือ เริ่มจากศูนย์ เราเกิดมา มีอะไรมั่งล่ะ ไม่มีสักอย่าง ยกเว้น ทุกข์ มีมาแต่ต้น สุขเป็นสมมติ ทุกข์เป็นของจริง ทุกขอริยสัจจัง สังขิตเตนะปัญจุปาทานักขันธาทุกขา ว่าโดยย่อ อุปปาทานขันธ์ทั้งห้าเป็นตัวทุกข์ ทุกข์เป็นของจริง คืออุปปาทานขันธ์ ยึดมั่นถือมั่นในตัวตนของตน นั่นคือทุกข์

ถ้ามองว่าทุกข์มากทุกข์น้อยล่ะ ทุกข์มากๆ ก็คือยึดมากๆ ทุกข์น้อยๆ ก็คือ ยึดน้อยๆ ไม่ยึดก็ไม่ทุกข์ แท้จริง มีทุกข์ กับไม่มีทุกข์ ก็คือสิ่งเดียวกัน คือ ไม่มี ไม่มีอะไร คือไม่มีอุปปาทาน

ร้อนเย็น เป็นสิ่งเดียวกัน ต่างกันแค่ปริมาณของพลังงานความร้อน
รวยจน เป็นสิ่งเดียวกัน ต่างกันแค่ปริมาณเงิน
ทุกข์สุข ก็เป็นสิ่งเดียวกัน ต่างกันแค่ปริมาณของอุปปาทานความยึดมั่นถือมั่น ยิ่งมีมากก็ทุกข์มาก มีน้อยก็ทุกข์น้อย

จะลดอุปปาทานล่ะ ทำอย่างไร ? ตัณหาเป็นบ่อเกิดของอุปปาทาน อยากลดอุปปาทาน ก็ต้องลดตัณหา … ไม่มีตัณหา ก็ไม่มีอุปปาทาน ไม่มีอุปปาทาน ก็ไม่มีทุกข์

จัดทีม ปราบ เจ้ากบจอมเวทย์ อิริริ ซามาริริ

March 29th, 2017

เจ้ากบจอมเวทย์ตัวนี้ เป็นแบล๊คเมจเลเวล 132 ชอบใช้เวทย์แรงๆระดับ 5 มี AoE ไซเลนซ์ และก็มี AoE สาปเป็นกบ นอกจากนั้นก็ยังมีสกิล ซัมม่อนลูกน้องได้4ตัว + บัฟเวทย์แรง แถมมันชอบเล่น บราสสไปค์ … จะจัดการมันอย่างไรดี

แผนที่จะใช้ก็คือ ใช้ SMN และการโจมตีจากระยะไกล โดยมี PLD เข้าไปตีมันคนเดียวและคอยดึงเฮทไว้ คนอื่นๆโจมตีจากที่ไกลๆ จะได้ไม่เสี่ยงกับ AoE และ บราสสไปค์

ทีมก็จะเป็น PLD + 2xSMN + THF + RNGหรือSAM โจมตีระยะไกลและใช้ WS-อาวุธระยะไกล

ข้อควรระวัง ซัมมอนเนอร์ต้องมี StoneSkin และ Blink ออนอยู่เสมอ เผื่อรามูตายแล้วกบมันโจมตีเราด้วยเวทย์จากระยะไกล ไม่ควรอยู่เกาะกันเป็นกลุ่ม และ พกยาแก้ไซเลนซ์ไว้คนละโหล พาลาดิน ดึงเฮทไว้ และรักษาชีวิตตัวเองให้รอด พวก ซัมมอนเนอร์ วิ่งไปสั่งโจมตีใช้ BP แรงที่สุด และวิ่งหนี เติมอควาเวล บริงค์ สโตนสกิน จากนั้นก็รอจน BP พร้อมใช้อีกครั้ง (BP รีแคส 40วินาที) จากนั้น ก็รีรีส และเรียกอวาตามาใหม่ วิ่งไปตีอีกรอบ

และผลก็คือ ปราบเจ้ากบได้อย่างง่ายดาย ด้วยทีมแค่สามคน มี พาลาดิน กับ ซัมมอนเนอร์อีก2 แค่นั้นเองก็ชนะได้แล้วครับ

วินดัสมิชชั่นแรงค์1

November 21st, 2016

1-1 เราได้รับมอบหมายจากโอราสเตอรี่ (สถาบันวิจัยเวทมนต์คาถา) ให้ไปช่วยงานวิจัยในโบราณสถานโฮรุโตโตะ และให้รีบไปเพราะหัวหน้าของพวกเขาเดินทางไปที่นั่นชั่วโมงกว่าแล้ว … เรารีบเดินทางไปที่ห้องแลปในโฮรุโตโตะ แต่พบว่าตอนนี้สองพี่น้อง อโปรุรู (Aporuru) และ อจิโดะ (Ajido-Marujido) กำลังถกเถียงเรื่องใดไม่ทราบ ได้ยินเพียงแต่ว่า อจิโดะกำลังทำอะไรบางอย่างที่อาจก่อให้เกิดสงคราม ? เอ๋ สงครามกับใคร และอจิโดะไม่สนใจเหตุผลและคำโวยวายของอโปรุรูเลย อโปรุรู ด้วยความโกรธ เธอจากไปโดยไม่เห็นเรา แต่อจิโดะเห็นเราเข้าแล้ว เราได้แต่บอกว่าได้รับมอบหมายให้มาช่วยที่นี่ เขาตำหนิที่เรามาสาย งานวิจัยก็ทำไปแล้ว และก็ล้มเหลวตามเคย เขาบอกเราว่าจะต้องมีลูกแก้วเวทย์มนต์ที่แตกร้าว ให้เราหาให้เจอแล้วไปส่งที่โอราสเตอรี่ จากนั้นเราค้นหาลูกแก้วนั้นและมอบลูกแก้วที่มีรอยร้าวให้แก่ผู้เกี่ยวข้อง เราทำหน้าที่ที่ได้รับมอบหมายสมบูรณ์แล้ว มิชชั่น คอมพลีท

1-2 คราวนี้เราได้รับมอบหมายให้ไปช่วยงานที่ แมนัสเตอรี่(สถาบันวิจัยหุ่นพยนต์) ที่นี่มี อโปรุรูเป็นหัวหน้า เธอขอให้เราเอาลูกแก้วเวทย์มนต์ไปชาร์ตพลังเวทย์ที่โฮรุโตโตะส่วนนอก เราได้รับลูกแก้วสีหม่นๆมา6ลูก เพราะเครื่องชาร์ตมันรับได้แค่นั้น เราเดินทางไปนั่น เจ้าหน้าที่ที่เฝ้าที่นั่นอยู่มอบกุญแจห้องเดินเครื่องชาร์ตพลังเวทย์ให้เรา เราเอาลูกแก้วไปวางที่แท่นชาร์ต เปิดเครื่องชาร์ต และก็เก็บลูกแก้วที่ตอนนี้สว่างสดใสทั้งหกลูก โอ๊ยงานง่ายๆ จากนั้นเตรียมเดินทางจะกลับไปมอบลูกแก้วที่ชาร์ตแล้วคืนให้แก่อโปรุรู แต่ทว่า หุ่นพยนต์ (Cardian) ระดับAce ถึงสามตัวมารอเราอยู่ พวกมันกำลังข่มขู่เจ้าหน้าที่ที่ถือกุญแจ และเมื่อเห็นเรา มันสั่งให้เรามอบลูกแก้วที่ชาร์ตแล้วให้แก่พวกมัน พวกมันเป็นหุ่นระดับสูงที่ใช้ในสงคราม จริงๆก็ไม่ได้กลัวพวกมันหรอกนะ แต่เรากลัวว่าเจ้าหน้าที่ตรงนั้นจะได้รับอันตราย จึงยอมมอบลูกแก้วทั้งหกให้พวกมันไป … เรากลับไปเล่าเรื่องทั้งหมดให้อโปรุรู เธอตกใจ เธอบอกเราว่า เราตัดสินใจถูกแล้วล่ะ ลูกแก้วสร้างใหม่ได้ แต่ชีวิตของพวกเราสร้างใหม่ไม่ได้ พวกคาร์เดียนมันคงอยากได้ลูกแก้วไปชุบชีวิตเพื่อนๆของพวกมัน แต่มันไม่รู้หรอกว่า ถึงจะมีลูกแก้วสักกี่ลูก แต่ถ้าไม่มีผู้ใช้เวทย์มนต์ที่มีความรู้เรื่องหุ่นพยนต์ดีพอ ก็ไม่สามารถจะทำให้หุ่นพวกนั้นกลับมามีชีวิตใหม่ได้ จากนั้นเธอเซ็นใบรับรองให้เรา มิชชั่น คอมพลีท

1-3 สตาร์ซิบลิลผู้นำของวินดัสคนปัจจุบันพยายามที่จะเป็นมิตรกับพวกยากุโดะซึ่งเป็นบีสแมนเผ่าพันธ์นกซึ่งเมืองของพวกมันอยู่ใกล้กับวินดัส ทางวินดัสส่งมอบของกำนัลแก่ยากุโดะเป็นประจำ ซึ่งของขวัญนั้นก็ไม่ได้แพงอะไร เป็นเพียงอาหารและเครื่องดื่มที่ ไรนอสเตอรี่ เป็นผู้จัดทำขึ้น(คำว่าไรนอสแปลว่ากลิ่น และสถาบันนี้เกี่ยวข้องกับการเกษตร วิจัยพืชและการเพาะปลูกซะเป็นส่วนใหญ่ แต่ครั้นจะเรียกว่าสถาบันวิจัยพันธ์พืช ก็ดูจะไม่คลอบคลุม เพราะ รุกุซูสุ (Rukususu) หัวหน้าสถาบัน เธอเป็นนักโบราณคดีที่เดินทางไปทั่วโลก)
ภารกิจคราวนี้ เราจะต้องเป็นผู้ส่งมอบของขวัญทั้งสองขิ้นนั้นแก่เผ่ายากุโดะ และกลับมารายงานผล งานราบรื่น เราส่งมอบของให้แก่ยากุโดะที่เฝ้าประตูซ้ายขวาของจิดัส ท่าทีของผู้ที่รับของขวัญดูเป็นมิตรแต่ก็ดูยกตนเหนือกว่าอยู่พอสมควร ซึ่งก็เป็นธรรมดา เพราะการมอบของขวัญหรือการส่งส่วยแก่เผ่าอื่น ก็เหมือนกับการยอมจำนน ดูเสียศักดิ์ศรี พนักงานของไรนอสเตอรี่ส่วนใหญ่ก็รู้สึกเช่นนั้น จะยกเว้นก็คงท่านผู้อาวุโสของสถาบัน ลีเป-ฮอปเป (ชื่อของทารุมันจะเป็นแบบนี้แหละ ถ้าผู้ชายจะมีชื่อ-นามสกุล แต่ผู้หญิงจะไม่แสดงนามสกุล และชื่อลงท้ายเป็นคำซ้ำ) พอเรากลับมารายงานผล ก็พบว่า อจิโดะกำลังคุยกับท่านผู้อาวุโสลีเปเรื่องจะขอยืมกุญแจของสถาบันไรนอสเตอรี่ ที่ลีเปถือไว้ ลีเปไม่ใช่หัวหน้าสถาบันหรอก แต่เพราะหัวหน้ามักจะเดินทางอยู่เสมอ ลีเปจึงได้รับมอบหมายให้ถือกุญแจ และกุญแจนี้เป็นมาสเตอร์คีย์ สามารถใช้เปิดห้องแลปของสถาบันได้ทั้งหมด อจิโดะกำลังทำอะไรกันแน่นะ !

ในที่สุด เราก็รายงานผล ได้รับรางวัล และเลื่อนระดับเป็นแรงค์ 2 มิชชั่น คอมพลีท

« Previous Entries  

 

Bad Behavior has blocked 504 access attempts in the last 7 days.

Business Broker