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 นึง โดยยังมีค่าที่ป้อนไว้อยู่ สามารถทำได้มั้ยครับ
ก็ประกาศตัวแปรลอยไว้ข้างบนก่อนอันนึงครับ (Global) แล้วค่อยไป assign ใน function ตอน success
:: DigiKin8 ::
ทดลองแล้วครับ ลอง console.log ออกมา ได้เป็น undefine
ผมยืนยันตาม PiKO นะ
ลองใช้ Firebug ใน Firefox debug ดู scope ของตัวแปรครับ
หรือจะลองตั้งตัวแปรให้เป็น field ของ object window ก็ได้
เวลาใส่ค่ามันจะได้เหมือนเป็นการกำหนด scope ในตัวเลย
window.var1 = value;
อีกวิธี (ออกจะเถื่อนหน่อย) เอา div ซักตัวมา .data เก็บค่าตัวแปรเลยครับ :P
จริงๆ แล้วถ้ามองว่าเอาค่าไปเก็บใน html element ใดๆ
ก็ให้มองว่าใช้สิ่งที่มีอยู่แล้วโดยไม่ต้องสร้างใหม่ดีกว่า เพราะ object ใน JavaScipt มันเติมฟิลด์ได้อิสระอยู่แล้ว
ผมชอบวิธีนี้ เป็นวิธีประจำที่ใช้เลย ไม่ชอบเอาโค้ด PHP ไปยัดใส่ใน Javascript
จัดลำดับการโหลดของไฟล์ javascript ให้ดีครับ แล้วควรแน่ใจว่า ตัวแปรนั้นประกาศไว้ก่อนมีการเรียกใช้จริงๆ
ได้แน่นอนครับ อีกเสียง
ลองไล่โค๊ดดูดีๆ
Success ตอบมามันมีค่ามั้ย
assign ใส่ตัวแปรแล้วไปเปลี่ยนค่าตรงไหนก่อน debug ป่าว
http://stackoverflow.com/questions/3352020/jquery-the-best-way-to-set-a-global-variable
ประกาศตัวแปรนอก scope ไม่ต้องใช้ var และทำให้เป็น object ครับ ถ้ายังไม่ได้อีกต้องทบทวนที่ตัวเองเคยเขียนแล้วครับ
ปล. ที่ก็อบที่หัวกระทู้มา มันแท็กปิดมันเกินมาได้ครับ ก็อบหัวมาไม่ครบหรือเปล่า?
มันไม่ง่ายเลยที่จะทำ GIF ให้มีขนาดน้อยกว่า 20kB
ไม่ต้องใช้ var
แต่เวลาใช้ global ถ้าอยากให้ชัดเจนว่าเป็น global แนะนำให้ใช้เป็น document.myGlobalVar แบบนี้ดีกว่า เห็นที่ไหนก็ไม่สับสน
ต้องขอโทษทุกท่านด้วยครับ เป็นความผิดผมเอง ตัวแปร local ดันใส่ var ไว้ มันก็เลยเก็บค่าไปที่ local แทน
ตอนนี้ได้แล้วครับ ขอบคุณทุกท่านมากครับ
เข้ามาตอบกันเยอะมากกกก อบอุ่นจนร้อนกันเลยทีเดียว
กรณีนี้เรียกว่าโดน shadow หรือโดนบังโดย local variable