10/10/2018, 10:55

[Hỏi]Sử dụng biến trong javascript

Code:
$.ajax(
{
	url: 'load_image.php?' + Math.random(),
	type: 'get',
	success: function(data)
	{
	       file_name = data;
	}
});
//code here
Cho em hỏi là làm sao để lấy giá trị biến file_name bên ngoài phần xử lý ajax?
Cám ơn
anhchanghaudau viết 13:07 ngày 10/10/2018
var file_name;
$.ajax(
{
url: 'load_image.php?' + Math.random(),
type: 'get',
success: function(data)
{
file_name = data; // tốt nhất nên đặt code trong đây
}
});
//code here
// theo lý thì sử dụng ở đây không có ý nghĩa gì cả, vì ajax chưa request xong thì file_name vẫn chưa có gì
alert(file_name);
langtusitinh225 viết 13:10 ngày 10/10/2018
Vậy có cách nào để mình có thể lưu kết quả trả về và sử dụng ở bất cứ đâu không vậy?
haicop viết 13:05 ngày 10/10/2018
Bạn dùng thư viện có sẵn sẽ hơi khó, nếu bạn tự viết thư viện Ajax bạn có thể làm như sau :
- Dùng Ajax để gọi 1 file có cấu trúc XML, trong đó có 1 thẻ <java> lenh java </java>
- Khi ready state ok

if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")


thì chạy cái này

eval(xmlHttp.respon***ML.getElementsByTagName('jav a')[0].firstChild.data)

Như thế sau khi gọi đc php rồi, tùy kết quả mà bạn thích gọi tiếp hàm java nào cũng đc
longersoft viết 13:11 ngày 10/10/2018
Được gửi bởi langtusitinh225
Code:
$.ajax(
{
	url: 'load_image.php?' + Math.random(),
	type: 'get',
	success: function(data)
	{
	       file_name = data;
	}
});
//code here
Cho em hỏi là làm sao để lấy giá trị biến file_name bên ngoài phần xử lý ajax?
Cám ơn

thêm cái này vào tham số khi call ajax nữa là bạn có thể gán giá trị ra biến bên ngoài đc:

async:false, cache:false,

ví dụ:

var res = null;
$.ajax({type:"GET", url:url_tocall,
async:false, cache:false,
data:{str:str_abc},
success: (function(response) {
if (response) res = response;
})
});
trinhdiep viết 13:09 ngày 10/10/2018
không hiểu lắm.
nếu nuốn biến file_name là global có thể dùng window.file_name=data
sau đó bạn có thể truy xuất tới nó bằng window.file_name hoặc file_name ở bất kì đâu
Bài liên quan
0