ورود

View Full Version : سوال: گرفتن مقدار با استفاده از اجاکس در جاوا اسکریپت



lilac8
دوشنبه 18 آذر 1392, 13:52 عصر
function ajax(address){
if (window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}
else{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function (){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
var result = xmlhttp.responseText;
}
}
xmlhttp.open("GET",address,true);
xmlhttp.send();
// return result;
}





با سلام

من با استفاده از کد بالا سعی دارم با استفاده از اجاکس
مقداری رو از صفحه ای که کد مربوط به اضافه کردن مقادیری
به دیتا بیس رو انجا نوشتم رو بگیرم مقدار مورد نظر رو با
responsetext دریافت میکنم و در result میریزم
حالا من result رو به عنوان خروجی تابع ajax ام نیاز دارم
اما responsetext فقط در xmlhttp.onreadystatechange

کار میکنه و بعد یا قبل از xmlhttp.send(); نتیجه ای به من نمیده
راهی هست که بتونم مقدار مورد نظرم رو بگیرم ؟:افسرده:

jalil_gh
دوشنبه 18 آذر 1392, 17:06 عصر
درخواست‌های ایجکس به صورت اسینکرون هست. یعنی رفتنش با شماست ولی اومدنش با ... .
شما هرکاری که می‌خایی با مقدار برگشتی انجام بدی میتونی تو همون readystatechange انجام بدی. و یا اینکه یه تابع رو داخلش صدا بزنی و اون مقدار برگشتی رو بهش بدی. یه چیزی تو این مایه‌ها.
function doSomething(result) {
// do something with the result
}

function ajax(address){
if (window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}
else{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function (){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById("txtHint").innerHTML=xmlht tp.responseText;
doSomething(xmlhttp.responseText);
}
}
xmlhttp.open("GET",address,true);
xmlhttp.send();
}