 |
[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 :
1314 |
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 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|