jquery.ajax
หลังจากมัน success แล้ว ให้มันเอาค่าในตัวแปร ไปเก็บไว้ ที่ ตัวแปร global ด้วยได้มั้ยครับ
var input_search_device_name;
f = {
groupOp : "AND",
rules : []
};
if (input_search_device_name != '')
f.rules.push({
field : "display_name",
op : "cn",
data : input_search_device_name
});
jQuery.ajax({
type : "POST",
url : deviceNewFetchUrl,
data : {
_search : 'true',
searchField : "display_name",
rows : rowsPerPage,
sidx : 'user_id',
filters : JSON.stringify(f),
},
sync : true,
dataType : "json",
success : function clearAndAddMarkerLabel(json) {
console.log("Into clearAndAddMarkerLabel");
console.log(JSON.stringify(f));
console.log(JSON.stringify(json));
json.rows.forEach(function(userLocation) {
dataUserLocation[userLocation.user_id] = userLocation;
// console.log("userLocation : ");
// console.log(userLocation);
plotDeviceOnMap(userLocation);
});
},
error : function() {
alert("Error");
}
});
});
ผมอยากเอา ตัวแปร input_search_device_name นี้ ไปใช้ที่อีก function นึง โดยยังมีค่าที่ป้อนไว้อยู่ สามารถทำได้มั้ยครับ
ก็ประกาศตัวแปรลอยไว้ข้างบนก่อ
PiKO Fri, 21/06/2013 - 18:52
ก็ประกาศตัวแปรลอยไว้ข้างบนก่อนอันนึงครับ (Global) แล้วค่อยไป assign ใน function ตอน success
ทดลองแล้วครับ ลอง console.log
Benzines Fri, 21/06/2013 - 19:00
In reply to ก็ประกาศตัวแปรลอยไว้ข้างบนก่อ by PiKO
ทดลองแล้วครับ ลอง console.log ออกมา ได้เป็น undefine
ผมยืนยันตาม PiKO นะ ลองใช้
PaPaSEK Fri, 21/06/2013 - 19:55
In reply to ทดลองแล้วครับ ลอง console.log by Benzines
ผมยืนยันตาม PiKO นะ
ลองใช้ Firebug ใน Firefox debug ดู scope ของตัวแปรครับ
หรือจะลองตั้งตัวแปรให้เป็น field ของ object window ก็ได้
เวลาใส่ค่ามันจะได้เหมือนเป็นการกำหนด scope ในตัวเลย
window.var1 = value;
อีกวิธี (ออกจะเถื่อนหน่อย)
tearfire Fri, 21/06/2013 - 20:51
อีกวิธี (ออกจะเถื่อนหน่อย) เอา div ซักตัวมา .data เก็บค่าตัวแปรเลยครับ :P
จริงๆ
PaPaSEK Fri, 21/06/2013 - 21:48
In reply to อีกวิธี (ออกจะเถื่อนหน่อย) by tearfire
จริงๆ แล้วถ้ามองว่าเอาค่าไปเก็บใน html element ใดๆ
ก็ให้มองว่าใช้สิ่งที่มีอยู่แล้วโดยไม่ต้องสร้างใหม่ดีกว่า เพราะ object ใน JavaScipt มันเติมฟิลด์ได้อิสระอยู่แล้ว
ผมชอบวิธีนี้
nevermore Sat, 22/06/2013 - 09:00
In reply to อีกวิธี (ออกจะเถื่อนหน่อย) by tearfire
ผมชอบวิธีนี้ เป็นวิธีประจำที่ใช้เลย ไม่ชอบเอาโค้ด PHP ไปยัดใส่ใน Javascript
จัดลำดับการโหลดของไฟล์
suwatchai Fri, 21/06/2013 - 23:04
จัดลำดับการโหลดของไฟล์ javascript ให้ดีครับ แล้วควรแน่ใจว่า ตัวแปรนั้นประกาศไว้ก่อนมีการเรียกใช้จริงๆ
ได้แน่นอนครับ
squeezy Sat, 22/06/2013 - 02:25
In reply to จัดลำดับการโหลดของไฟล์ by suwatchai
ได้แน่นอนครับ อีกเสียง
ลองไล่โค๊ดดูดีๆ
Success ตอบมามันมีค่ามั้ย
assign ใส่ตัวแปรแล้วไปเปลี่ยนค่าตรงไหนก่อน debug ป่าว
http://stackoverflow.com/ques
AMp Sat, 22/06/2013 - 13:16
http://stackoverflow.com/questions/3352020/jquery-the-best-way-to-set-a-global-variable
ประกาศตัวแปรนอก scope
EThaiZone Sat, 22/06/2013 - 17:09
ประกาศตัวแปรนอก scope ไม่ต้องใช้ var และทำให้เป็น object ครับ ถ้ายังไม่ได้อีกต้องทบทวนที่ตัวเองเคยเขียนแล้วครับ
ปล. ที่ก็อบที่หัวกระทู้มา มันแท็กปิดมันเกินมาได้ครับ ก็อบหัวมาไม่ครบหรือเปล่า?
ไม่ต้องใช้ var แต่เวลาใช้
Similanblu Sun, 23/06/2013 - 03:33
ไม่ต้องใช้ var
แต่เวลาใช้ global ถ้าอยากให้ชัดเจนว่าเป็น global แนะนำให้ใช้เป็น document.myGlobalVar แบบนี้ดีกว่า เห็นที่ไหนก็ไม่สับสน
ต้องขอโทษทุกท่านด้วยครับ
Benzines Sun, 23/06/2013 - 15:32
ต้องขอโทษทุกท่านด้วยครับ เป็นความผิดผมเอง ตัวแปร local ดันใส่ var ไว้ มันก็เลยเก็บค่าไปที่ local แทน
ตอนนี้ได้แล้วครับ ขอบคุณทุกท่านมากครับ
เข้ามาตอบกันเยอะมากกกก อบอุ่นจนร้อนกันเลยทีเดียว
กรณีนี้เรียกว่าโดน shadow
saknarak Wed, 26/06/2013 - 00:44
กรณีนี้เรียกว่าโดน shadow หรือโดนบังโดย local variable