برگزیده های پرشین تولز

لودینگ آژاکس

iranii

Registered User
تاریخ عضویت
1 جولای 2005
نوشته‌ها
512
لایک‌ها
30
سلام
این کد مربوط به آجاکس هست که من دارم و عملیات مورد نظر انجام هم میشه اما میخواستم تا وقت یکه محتوا نمایش داده بشود یک لودینگ قرار بدم کد ی چه تغییری لازم داره؟ یا کلا چه بخش هایی باید تغییر پیدا کنه

این تصویر رو میخواستم تا قبل از اینکه محتوا لود بشه نمایش بدم :
mozilla_giallo.gif




HTML:
function menuRequest(url)
{
var arg = url;
url = "content.php?q=" + url;
var http_request = false;

if (window.XMLHttpRequest)
{ // Mozilla, Safari,...
http_request = new XMLHttpRequest();

if (http_request.overrideMimeType)
{
http_request.overrideMimeType('text/xml');
// See note below about this line
}
} else if (window.ActiveXObject)
{ // IE
try
{
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e)
{
try
{
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}

if (!http_request)
{
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}

http_request.onreadystatechange = function() { alertContents(http_request); };
http_request.open('GET', url, true);
http_request.send(null);

}


function alertContents(http_request)
{
if (http_request.readyState == 4)
{
if (http_request.status == 200)
{
document.getElementById("content").innerHTML=http_request.responseText;
}
else
{
alert('There was a problem with the request.');
}
}
}
 

alik

کاربر قدیمی پرشین تولز
تاریخ عضویت
23 سپتامبر 2005
نوشته‌ها
2,146
لایک‌ها
1,232
کد:
function alertContents(http_request)
{
if (http_request.readyState == 4)
{
if (http_request.status == 200)
{
document.getElementById("content").innerHTML=http_request.responseText;
}
else
{
alert('There was a problem with the request.');
}
}
}

داخل این تابع شما باید در حالات خارج از 4 اون عکس را نمایش بدید وقتی که 4 شد عکس را دیگه نمایش ندید.
شماره 1 Sending
شماره 2 Sent
شماره 3 Get Result
شماره 4 Loaded
 

iranii

Registered User
تاریخ عضویت
1 جولای 2005
نوشته‌ها
512
لایک‌ها
30
ممنون.
حالا یک سوال پیش میاد
در یک صفحه یک تیبل ده بار تکرار شده باشه
بنابراین ده تا هم آی دی content داریم که قرار هست
نتیجه توی اون نمایش داده بشه حالا اینجور وقتی مثلا مورد
مربوط به تیبل پنجمی کلیک میشه پردازش روی content تیبل اولی
فقط انجام میشه. یعنی هر پیامی و لودینگی هم که باشه نمیاد روی
همون بخش پنجم میاد روی تیبل اولی.
 

naeemtop

Registered User
تاریخ عضویت
29 ژوئن 2004
نوشته‌ها
661
لایک‌ها
4
سن
37
محل سکونت
tehran
از ajax میشه تو فرانت پیج استفاده کرد؟
 

alik

کاربر قدیمی پرشین تولز
تاریخ عضویت
23 سپتامبر 2005
نوشته‌ها
2,146
لایک‌ها
1,232
ممنون.
حالا یک سوال پیش میاد
در یک صفحه یک تیبل ده بار تکرار شده باشه
بنابراین ده تا هم آی دی content داریم که قرار هست
نتیجه توی اون نمایش داده بشه حالا اینجور وقتی مثلا مورد
مربوط به تیبل پنجمی کلیک میشه پردازش روی content تیبل اولی
فقط انجام میشه. یعنی هر پیامی و لودینگی هم که باشه نمیاد روی
همون بخش پنجم میاد روی تیبل اولی.
از اسم های مختلف برای آی دی استفاده کنید
 

iranii

Registered User
تاریخ عضویت
1 جولای 2005
نوشته‌ها
512
لایک‌ها
30
از اسم های مختلف برای آی دی استفاده کنید

اینجور دیگه اصلا کار نمیکنه چون توی فایل آژاکس تعریف شده که :

HTML:
document.getElementById("content").innerHTML=http_request.responseText;

حالا توی برنامه اگر این اسم تغییر کنه و ده تا تیبل یا دیو این اسم رو با یک شماره منحصر هم داشته باشن
کار نمیکنه چون این میخواد اطلاعات رو توی جایی که آی دی content هست قرار بده و اگر هم همشون به
یک اسم باشن اولین بخشی که این اسم رو داره اطلاعات داخلش نماش داده میشوند.
 

iranii

Registered User
تاریخ عضویت
1 جولای 2005
نوشته‌ها
512
لایک‌ها
30
در سوال بالا ما با استفاده از url = "content.php?q=" + url; مقدار q را که یک عدد است
میتوانیم به content اضافه کنیم؟ یعنی با دریافت آی دی هر شماره ای که بود به content
اضافه شود.
 

alik

کاربر قدیمی پرشین تولز
تاریخ عضویت
23 سپتامبر 2005
نوشته‌ها
2,146
لایک‌ها
1,232
این که مشکلی نیست :) شما اسم content را عوض کن چون آیه نیومده فقط توی content باید بریزه :)
هر درخواستی که میخوای بدی به همراه درخواست آژاکس اسم id را هم بده و در کد بالا هم اسم id که الان content هست با اسمی که زمان درخواست داده میشه جایگزین کن ...
 

iranii

Registered User
تاریخ عضویت
1 جولای 2005
نوشته‌ها
512
لایک‌ها
30
الان اونجا نوشتم که اسم هر دیو با توجه به آی دی منحصر به فرد باشه
و توی کد بالا هم این تغییر رو دادم اما باز هم عمل نمیکنه

PHP:
document.getElementById(url).innerHTML=http_request.responseText;
حالا اینجا من قصد دارم که همون مقدار q که در پست اول حاوی مقدار id هست به عنوان
محل نمایش قرار بگیره بنابراین هر بار تغییر میکنه و درست عمل میشه.

چیزی ک الان لازم هست اینه که مقدر q رو بشه قرار داد همین.
 
بالا