|  | 
	                
  
    | 
	 
        [jquery] เอาข้อมูลที่ส่งกลับมา (data) มาเก็บไว้ในตัวแปรอย่างไรครับ     |  
    |  |  
 
	
		|  |  |  |  |  
		|  |  | 
          
            | Code (JavaScript) 
 
$(document).ready(function() {
    var i=2;
    var x;
    var price = [];
$('input#change,select[name=posttype],input[name=discount],#append_flavor').on("change",function()  {
    for(x=1;x<=i;x++){
        var product_id = $('select[name=flavor_'+x+']').val();
        $.get('order_product_cal.php', {'call':'price','getid':product_id}, function(data) {
            price[x] = data;
        });
        $('#test').html(price[1]);
    }
});
});
 $('#test').html(price[1]); ไม่แสดงค่าอะไร
 แต่เมื่อแก้เป็น
 
 
 
$(document).ready(function() {
    var i=2;
    var x;
    var price = [];
$('input#change,select[name=posttype],input[name=discount],#append_flavor').on("change",function()  {
    for(x=1;x<=i;x++){
        var product_id = $('select[name=flavor_'+x+']').val();
        $.get('order_product_cal.php', {'call':'price','getid':product_id}, function(data) {
            $('#test').html(data);
        });
    }
});
});
 กลับแสดงค่าได้ครับ
 
 
 
 Tag : PHP, Ajax, jQuery
 
 
 |  
            |  |  
            | 
              
                |  |  |  |  
                |  | 
                    
                      | Date :
                          2015-08-28 17:01:03 | By :
                          zodaema | View :
                          1362 | Reply :
                          13 |  |  |  
                |  |  |  |  |  
            |  |  
		            |  |  
		|  |  |  |  |  
  
    | 
 
        
          |  |  |  |  |  
          |  |  | 
            
              | แล้วส่งค่ากลับมาอย่างไร?? ส่วนใหญ่น่าจะเป็น arr ส่งกลับมา ในรูปแบบ json
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2015-08-28 17:04:47 | By :
                            CasanovaKung |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
 
        
          |  |  |  |  |  
          |  |  | 
            
              | จากโค๊ดบน Code (JavaScript)
 
 
        $.get('order_product_cal.php', {'call':'price','getid':product_id}, function(data) {
            price[x] = data;
        });
        $('#test').html(price[1]);
 แก้เป็น
 Code (JavaScript)
 
 
        $.get('order_product_cal.php', {'call':'price','getid':product_id}, function(data) {
            price[x] = data;
            if(x==1) $('#test').html(price[x]);
        });
 สาเหตุเพราะ คำสั่ง ajax ข้อมูล result ที่ได้มา จะเข้าไปทำงานใน function จะมีการหน่วงเวลาทำงาน
 คำสั่งที่อยู่นอก function จะทำงานก่อนที่ ตัวแปร price[x] จะได้รับการเปลี่ยนแปลงภายใน function
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2015-08-28 17:09:42 | By :
                            NewbiePHP |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
 
        
          |  |  |  |  |  
          |  |  | 
            
              | Code (JavaScript) 
 
$.get('order_product_cal.php', {'call':'price','getid':product_id}, function(data) {
    if(x==2) $('#test').html(price[1] + data );
    else price[x] = data;
});
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2015-08-28 17:18:50 | By :
                            NewbiePHP |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ในกระบวนการนี้ ต้องการทำอะไรหรอครับ?? คำนวณราคาใหม่หรอ??
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2015-08-28 17:33:37 | By :
                            CasanovaKung |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | สร้างfunction ไว้รอทำงานเสร็จครับ เมื่อ ajax ทำงานถึงตัวสุดท้าย ก็สั่งให้ใช้งานครับ
 Code (JavaScript)
 
 
$(document).ready(function() {
	var i=2;
	var x;
	var chk_i=0; // การใช้ตัวแปร x อาจไม่ชัดเจน กำหนดตัวแปรมาเพื่อเช็คโดยเฉพาะ
	var price = [];
	$('input#change,select[name=posttype],input[name=discount],#append_flavor')
	.on("change",function(){
		for(x=1;x<=i;x++){
			var product_id = $('select[name=flavor_'+x+']').val();
			$.get(
				'order_product_cal.php', 
				{'call':'price','getid':product_id}, 
				function(data) {
					chk_i++; 
					price[chk_i] = data; 
					if(chk_i==i) afterLoop(); // เช็ครายการสุดท้าย ทำงานใน function afterLoop()
				}
			);
		}
	});
});
function afterLoop(){
	$('#test').html(price[1]);
}
 |  
              | 
 ประวัติการแก้ไข
 2015-08-28 17:36:01
 2015-08-28 17:36:53
 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2015-08-28 17:34:51 | By :
                            NewbiePHP |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ดูจากลักษณะการทำงาน เป็นหน้าเลือกสินค้า ตะกร้า หรือ??
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2015-08-28 17:40:52 | By :
                            CasanovaKung |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
 
 |  |