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.