الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلتي في الأجاكس مع Ie7 أو اقل لا يقبل يشتغل إلا مرة واحدة فقط

بدأه ojopc في 11 سبتمبر 2008 · 2 رد · 832 مشاهدة · في قسم البرمجة بــ Javascript
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

عملت كود يقوم بجلب محتويات الصفحة بصورة أجاكس

لكني اواجه مشكلة مع متصفح ويندوز (اكسبلورر)

كيف أحل هذه المشكلة.؟

هذا هو الكود المطلوب:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="rtl">
<head>
<script type='text/javascript' language='JavaScript'>
var ajaximg= '<br /><center><img src="ra/ajax_loader.gif" alt="" />';
var ajaxtxt= ' <span style="font: normal 12px tahoma;">الرجاء الانتظار...</span></center>';
// request XML
function IH_RequestObject() {
   var req;
   if(window.XMLHttpRequest){
	  req = new XMLHttpRequest();
   } else if(window.ActiveXObject) {
	  req = new ActiveXObject("Microsoft.XMLHTTP");
   } else {
	  alert('Cannot create XMLHTTP instance');
   }
   return req;
}
var AjaxHTTP = IH_RequestObject();
//************************************************
//  actions & functions
//************************************************
function ajax_post(file, responseID){
var thisform= document.form;
var city= 'city='+thisform.city.value;
	var parameters = city;
	AjaxHTTP.onreadystatechange =  function()
	{
		var ajaxTXT = document.getElementById(responseID);
		ajaxTXT.innerHTML = ajaximg+ajaxtxt;
		if(AjaxHTTP.readyState == 4 && AjaxHTTP.status == 200){
				var response = AjaxHTTP.responseText;
					if(response) {
						ajaxTXT.innerHTML = response;
				}
		}
	}
	AjaxHTTP.open('post', file);
	AjaxHTTP.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	AjaxHTTP.send(parameters);
}

</script>
</script>
<div>
<form name='form' method='post' target='_self' style='margin:0;' action="timelines.php">
<input type='button' name='getcity' value='تحديث' onclick="ajax_post2('getcity.php')" />
</form>
</div>
<div id='requesting'>
الناتج هنا
</div>

وتحديداً انا اواجه مشكلة في هذه العملية

 AjaxHTTP.onreadystatechange =  function()
	{
		var ajaxTXT = document.getElementById(responseID);
		ajaxTXT.innerHTML = ajaximg+ajaxtxt;
		if(AjaxHTTP.readyState == 4 && AjaxHTTP.status == 200){
				var response = AjaxHTTP.responseText;
					if(response) {
						ajaxTXT.innerHTML = response;
				}
		}
	}

فأنا بحاجة إلى تغيير الآي دي الخاص للرد على النتائج، ولكن لا تعمل في المتصفح IE إلا مرة واحدة فقط. يعني تشتغل بس تظهر مرة واحدة!!

وشكراً لمن يحل هذه المشكلة والجميع

تم تعديل هذه المشاركة بواسطة ojopc في 11 سبتمبر 2008 في 13:37

#2

حطيت حل في هذه المشاركة

/index.ph...10&start=10

CMS Sfhati , Website Generator


نظام إدارة المحتوى صفحتي ... جربه الآن 


 


small-logo.png

#3

عن الاتصال مع الاجاكس بنفس البراميترات

مثلا

http://localhost/test/test.php?action=addnew

ثم

http://localhost/test/test.php?action=addnew

فان المتصفح يكون قد قام بعمل كاش الاتصال الاول

و عند الطلب الثاني فانه لا يتصل بل يرجع ما قام الكاش الذي عمله للاتصال الاول

و لذلك فعليك إضافة بارميتر افتراضي يتغير مع كل اتصال مثل الزمن الحالى

http://localhost/test/test.php?action=addn...p;time=12654654

http://localhost/test/test.php?action=addn...p;time=12654456

و بهذا لن يتم عمل كاش لاي اتصال لك

و الله اعلم

غفر الله لى و لك

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…