Konu Başlığı: Ajax ile ilgili Bir Problem
View Single Post
Sponsorlu Bağlantılar
Zoque.Forum
Advertisement
Old 21.05.2007   #1 (permalink)
hasan
 
hasan's Avatar
 
Üyelik Tarihi: 21.05.2007
Yer: Ankara
Yaş: 26
Mesaj: 42
Ajax ile ilgili Bir Problem

Merhaba,

Yakın zamandır ajax ile uğraşıyorum. İlk olarak uygulamamın işleyişinden bahsetmek istiyorum. İlk önce veritabanından kayıtlar okunarak liste halinde sıralanıyor. Her kayıtın yanında Edit linki bulunuyor. Edit linkine tıklanınca ajax ile içerik değişiyor ve tıklanan kaydın ayrıntıları form içerisinde geliyor. Buraya kadar sorun yok. Gerekli değişiklikler yapılınca Güncelle butonuna basınca yine axaj ile formdaki bilgiler gönderilecek ve sayfa değişmeden ajax sayesinde seçilmiş olan kaydın güncellenmiş hali gösterilecek. Burada sorunum güncelle butonuna basınca formdaki sorgu gönderiliyor fakat güncellenmiş kayıtı görüntüleyemiyorum. Hata olarak ise ajaxContentArea adını verdiğim div in null olarak gözükmesi. Kullandığım Javascrip Kodu aşağıdadır.
Kod:
// JavaScript Document
var xmlHttp

function ajaxContent(strURL,getOrPost,params,ajaxArea)
{
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
  {
  alert ("Your browser does not support ajax!");
  return;
  }
var formMethod = getOrPost;
var url=strURL;
url=url+"&sid="+Math.random();
xmlHttp.onreadystatechange=function() {stateChanged(ajaxArea);};
xmlHttp.open(formMethod,url,true);
if (params!=null)
	{
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.setRequestHeader("Content-length", params.length);
		xmlHttp.setRequestHeader("Connection", "close");
		xmlHttp.send(params);
	}
else
	{xmlHttp.send(null);}
}

function stateChanged(ajaxAreaName)
{
	var resultArea = document.getElementById(ajaxAreaName)
	if (xmlHttp.readyState==4)
	{
		if (resultArea!=null)
		{
			resultArea.innerHTML=xmlHttp.responseText;
		}
		else
			return false;
	}
}

function GetXmlHttpObject()
{
var xmlHttp=null;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
return xmlHttp;
}
Aşağıdaki fonksiyonda resultArea yı null olarak görüyor.
Kod:
function stateChanged(ajaxAreaName)
{
	var resultArea = document.getElementById(ajaxAreaName)
	if (xmlHttp.readyState==4)
	{
		if (resultArea!=null)
		{
			resultArea.innerHTML=xmlHttp.responseText;
		}
		else
			return false;
	}
}
Yukarıda
Kod:
var resultArea = document.getElementById(ajaxAreaName)
yazan yeri şu şekilde yazarsam sorun olmuyor.
Kod:
var resultArea = document.getElementById('ajaxContentArea')
Fakat ben farklı yerlerde farklı divleri değiştirmem gerekiyor. Bu şekilde değişecek alanın id'sini sabitlersem benim için sıkıntı oluşturur. Onun için fonksiyona değişecek alanın id sini benim belirlemem gerekiyor.

Bu konuda nasıl bir çözüm üretebiliriz?

NOT : sorun çzöülmüştür.

Mesaj hasan tarafından 22.05.2007 (09:06) yeniden düzenlendi.. Açıklama: Sorun Çözülmüştür
hasan şu an çevrimdışı   Mesajdan alıntı yaparak yeni bir cevap ekleyin