[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 :
1286
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
Load balance : Server 04