PDA

View Full Version : برگشت مقدار توسط آژاکس



mohammad-gh
یک شنبه 28 شهریور 1389, 19:24 عصر
با سلام
ما با این کد می تونیم مقداری رو از صفحه 1 یه صفحه 2 فرستاده و نتیجه را درون تگ مربوط ببینیم، ارسال اطلاعات :


<script language='javascript' >
var xmlHttp;
function postdata(val,dvd,pri) {
xmlHttp = GetXmlHttpObject();
if (xmlHttp == null) {
alert ('مرورگر شما Ajax را پشتیبانی نمی کند.');
return;
}

var url = 'page2.php';
url = url + '?v1='+ val;
url = url + '&v2='+ dvd;
url = url + '&v3='+ pri;
url = url + '&sid=' + Math.random();
xmlHttp.onreadystatechange = stateChanged;
xmlHttp.open('GET', url, true);
xmlHttp.send(null);

}


function stateChanged() {
if (xmlHttp.readyState == 1 || xmlHttp.readyState == 'loading')
{ document.getElementById('response').style.display= 'none';
document.getElementById('loading').style.display=' block';
}
if (xmlHttp.readyState == 4 || xmlHttp.readyState == 'complete') {
document.getElementById('loading').style.display=' none';
document.getElementById('response').style.display= 'block';
var myarray=xmlHttp.responseText;
document.getElementById('response').innerHTML = xmlHttp.responseText;
}
}


function GetXmlHttpObject() {
var xmlHttp = null;
try {
xmlHttp = new XMLHttpRequest();
} catch (e) {
try {
xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
} catch (e) {
xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
}
}
return xmlHttp;
}
</script>

و حالا نتیجه رو توسط تگ یر می تونیم تو صفحه 1 ببینیم


<div id="loading" style="display:none;" align="center"><img src="../image/loading.gif" alt="loading..." /></div>
<div id="response"></div>

فرض کنیم که در صفحه 2 مقداری با توجه به پارامترهای ارسالی محاسبه و نشون داده میشه
حالا اگر بخواهیم که اون اطلاعات رو (مثلا یک مقدار) را در صفحه اول ازش استفاده کنیم ، چه کار باید بکنیم
منظور دسترسی به مقدار اون پارامتر در صفحه اول است که در صفحه دوم تولید شده

binyaft
یک شنبه 28 شهریور 1389, 20:18 عصر
الان این سوالات چه ربطی به پی اچ پی داره؟؟؟

kazemproger
یک شنبه 28 شهریور 1389, 23:52 عصر
من چند بار این سئوالتون رو خوندم ولی متوجه نشدم :متفکر:

mohammad-gh
دوشنبه 29 شهریور 1389, 12:48 عصر
سلام

این سوالات چه ربطی به پی اچ پی داره؟؟؟
ربطش اینه که تو php نوشته میشه و ما تو فروم بخش مستقل آژاکس نداریم

من چند بار این سئوالتون رو خوندم ولی متوجه نشدم
ببینید وقتی با آزاکس صفحه ای رو فراخوانی می کنیم ، نتایج اون صفحه (مثل نمایش یک پیغام با echo) با تگ هایی که گذاشتم تو صفحه 1 قابل دسترس است
حالا فرض کنیم تو صفحه 2 که صفحه 1 اون رو فراخوانی می کنه یک متغییر مقدار دهی میشه (مثلا متغییر $tedad) حالا سوال من اینه که چطور میشه به اون متغییر که تو صفحه دوم مقدار گرفته در صفجه اول دست پیدا کرد
نمی دونم شاید یه جوری بشه با استفاده از تگ <div id="response"></div> به اون رسید
اما چطور نمی دونم

baradar
دوشنبه 29 شهریور 1389, 15:13 عصر
با سلام
این کد رو با jquery نوشتم ببینید به کارتون میاد


div id="response"></div>

$.ajax({
type: "POST",
url: "page2.php",
data: "name=baradar",
success: function(msg){
// نمايش متغير ارسال شده از صفحه دوم درون دايو مورد نظر
$("#response").html(msg);

}
});

mohammad-gh
دوشنبه 29 شهریور 1389, 18:06 عصر
ممنون از لطفتون
می بخشید ، من زیاد با jquery آشنا نیستم ، میشه یه کم راجع به پارامترهایی که نوشتید توضیح بدید

baradar
سه شنبه 30 شهریور 1389, 08:37 صبح
با سلام
پارامترهای این تابع که خیلی واضح هستند ولی چشم

type: نوع متدی که اطلاعات را به وسیله آن ارسال می کنید ---<>GET,POST
url: آدرس صفحه ای که اطلاعات را به آن ارسال می کنید
data:اطلاعاتی که می خواهید به آن صفحه که در بخش آدرس مشخص کردید ارسال شود
success: نمایش اطلاعات باز گشتی ازصفحه مذکور که توسط پارامت این تابع قابل دسترسی هستند

این هم خود جی کوئری با فایل راهنماش