.

.

วันเสาร์ที่ 9 สิงหาคม พ.ศ. 2557

for loop วนค่ารับ event ด้วย Jquery

for loop วนค่ารับ event ด้วย Jquery

          สวัสดีครับทุกท่าน วันนี้ผมจะนำเทคนิคการเขียน Jquery ให้วนรับ event จาก button ด้วย for loop หน้าตาจะเป็นยังไง เดี๋ยวมาดูกันครับ

         ส่วน Jquery

<script type="text/javascript" src="jquery-2.0.3.min.js"></script><!--บรรทัดนี้ import Jquery Library เข้ามา -->
<script type="text/javascript">
$(document).ready(function(){
for (var a = 1; a <= 5; a++) {  //วน loop จำนวน 5 รอบ จาก 1-5
                        //จำนวนรอบให้เท่ากับ for loop ในส่วน php
(function(i){ //ประกาศฟังก์ชั่น ที่มีการรับค่าเข้ามาและเก็บในตัวแปร i
$('#btn-' + i).click(function(){  //รับ event จาก button
alert($("#val-" + i).val());  // เมื่อมีกาiคลิก button ให้ alert ค่าใน text box
}); //จบฟังก์ชั่นการรับ event จาก button
})(a); //ส่งค่า a จาก for loop ไปให้ตัวแปร i ในฟังก์ชั่น
} // จบ for loop
});
</script> 


          ส่วน PHP
<?php
for($i=1; $i<=5; $i++){     //วน loop จำนวน 5 รอบ จาก 1-5
    echo "<input type=\"button\" id=\"btn-$i\" value=\"Button-$i\">";
               //สร้าง button ให้ id ให้ id แตกต่างกันไปตามค่าตัวแปร $i
    echo "<input type=\"text\" id=\"val-$i\" value=\"".$i."\">";
               //สร้าง text box และกำหนดค่าให้ text box
    echo "<br>"; // ขึ้นบรรทัดใหม่
    echo "<br>"; // ขึ้นบรรทัดใหม่
}
?>
          ส่วน OUTPUT

เมื่อรัน Code แล้ว ผลลัพธ์จะปรากฏเหมือนรูปภาพด้านบน



เมื่อทดลอง click ที่่ button-3 จะ alert ค่าใน text box ที่ 3 มาแสดง



          ลองนำเทคนิคดังกล่าวไปปรับใช้กับการใช้งานของทุกท่านดูครับ หวังว่าบทความนี้อาจจะเป็นประโยชน์ต่อทุกท่าน ครับ ^_^







วันเสาร์ที่ 26 กรกฎาคม พ.ศ. 2557

synchronous กับ asynchronous ของ Ajax Jquery

Synchronous กับ Asynchronous ของ Ajax Jquery


Asynchronous

ตัวอย่าง Code ที่งานแบบ Asynchronous  โดยปกติแล้ว Ajax จะมีกระบวนการทำงานแบบ Asynchronous อยู่แล้ว เช่น
$.ajax({
     url : 'test.php',
     type : 'post', // จะใช้ post หรือ get ก็ได้
     data : {variable_1 : value_1, variable_2 : value_2},
     success : function(data){
         //coding
     }
});

หรือ

$.ajax({
     url : 'test.php',
     type : 'post', // จะใช้ post หรือ get ก็ได้
     async : true, // กำหนดให้ Asyncronous เป็น true
     data : {variable_1 : value_1, variable_2 : value_2},
     success : function(data){
         //coding
     }
});
ตัวอย่าง Code ทั้ง 2 ตัวอย่างด้านบน ทำงานเหมือนกันแป๊ะ ครับ

รูปภาพแสดงกระบวนการทำงานของ Ajax แบบ Asyncronous

อธิบายรูปภาพ เมื่อ Program มีการประมวณผล   ฝั่ง client จะทำงานไปที่ละคำสั่ง เมื่อถึงคำสั่งที่  3 (กำหนดให้คำสั่งที่ 3 คือ Ajax) ฝั่ง client จะส่งค่าไปประมวลผลฝั่ง Server ในระหว่างรอผลลัพธ์จากคำสั่งที่ 3 นั้น ฝั่ง client จะทำงานในตำสั่งที่ 4, 5 ไปเรื่อยๆ โดยไม่ต้องรอให้ ฝั่ง Server ประมวณผลเสร็จ


Synchronous

ตัวอย่าง Code ที่งานแบบ Synchronous  เช่น

$.ajax({
     url : 'test.php',
     type : 'post', // จะใช้ post หรือ get ก็ได้
     async : false, // กำหนดให้ Asyncronous เป็น false
     data : {variable_1 : value_1, variable_2 : value_2},
     success : function(data){
         //coding
     }
});

ตัวอย่าง Code ด้านบน ทำงานดังรูปภาพด้านล่างนี้





















อธิบายรูปภาพ เมื่อ Program มีการประมวณผล   ฝั่ง client จะทำงานไปที่ละคำสั่ง เมื่อถึงคำสั่งที่  3 (กำหนดให้คำสั่งที่ 3 คือ Ajax) ฝั่ง client จะส่งค่าไปประมวลผลฝั่ง Server ในระหว่างนี้ฝั่ง Client จะรอฝั่ง Server ทำงานเสร็จก่อน เมื่อ ฝั่ง Server ประมวณผลเสร็จและส่งค่ากลับมาให้ฝั่ง Client แล้ว ฝั่ง Client จึงจะทำงานคำสั่งถัดไปเรื่อยๆ




         ***** จบแล้วครับสำหรับ Ajax แบบ Synchronous กับ Asynchronous ทุกท่านคงได้เห็นข้อแตกต่างกันบ้างแล้วนะครับ ^_^