Mar
22ASP ile ajax kullanımı hakkında basit bir işlem yapacağız. XMLHttpRequest nesnesi oluşturup formdaki bir bilgiyi nasıl post edeceğiz öğreneceğiz.
Ajax fonksiyonlarını vererek kodlarda gerekli açıklamaları yaparak konuyu anlatıyorum.
var nesneyarat;
/*@cc_on @*/
/*@if (@_jscript_version >= 5) try { nesneyarat = new ActiveXObject("Msxml2.XMLHTTP"); }
catch (e) {
try { nesneyarat = new ActiveXObject("Microsoft.XMLHTTP"); }
catch (E) { nesneyarat = false; }
}@end @*/
if (!nesneyarat && typeof XMLHttpRequest!='undefined') {
try {
nesneyarat= new XMLHttpRequest();
} catch (e) {
nesneyarat=false;
}
}
return nesneyarat;
}
function AoL(id,cikti,hedef) {
var aktifform = document.getElementById(id);
var ekranayaz = document.getElementById(cikti);
var ciktiver = new String("");
var name, value;
for(var C = 0; C < aktifform.elements.length; C++){
name = aktifform.elements[C>.name;
value = aktifform.elements[C>.value;
ciktiver += escape(name) +'='+ encodeURIComponent(value) +'&';
}
var nesneiste = new yeni_nesne();
nesneiste.open("post", hedef, true);
nesneiste.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=iso-8859-9");
nesneiste.send(ciktiver);
nesneiste.onreadystatechange = function() {
if (nesneiste.readyState == 4 && nesneiste.status == 200) {
ekranayaz.innerHTML = nesneiste.responseText;
}
else { ekranayaz.innerHTML = ''; }
}
return false;
}
2 adet fonksiyonumuz mevcut. Birisi XMLHttpRequest nesnesi oluşturuyor, diğeri form bilgilerini post ediyor. XMLHttpRequest nesnesini burada anlatmak çok uzun olacağından sizi WIKI'deki kısa dökümanla başbaşa bırakıyorum. Farklı kullanımları mevcut, fakat ben genelde bu kullanımı tercih ediyorum.
2. fonksiyonumuzda ciktiver adında bir fonksiyon gözünüze çarpıyordur. Bunun amacı Türkçe karakterleri ve post esnasında tanınmayan karakterleri bozmadan gönderip, çıktı alabilmek içindir.
Herkes Turkçe karakter sorunundan yakınır. Eğer sayfanızın işaretleme tipi ile, setRequestHeader'i birbiriyle uyumlu hale getirir ve son olarakta ajax yordam sayfanıza bir charset belirtirseniz hiçbir sorun yaşamazsınız.
Form bilgilerimiz ise şöyle olacak,
<label for="adsoyad">Adınız Soyadınız</label><br />
<input type="text" name="adsoyad" id="adsoyad" />
<input type="submit" value="Gönder" />
</form>
<div id="sonuc"></div>
Burada onsubmit yordamında (sizler değiştirebilirsiniz) 3 olay gerçekleşmekte. Formun id bilgisini gönderiyoruz, gelen sonucun sonuc adlı id'li elementte işlenmesini belirtiyoruz ve son olarak bu bilgiler ajax.asp adlı dosyada işleneceğini bidiriyoruz.
Ajax için elementlerin ID bilgileri çok önemlidir. Post edebilmek içinde form bilgilerine birer name eklememiz gerekir. Aynı olmak zorunluluğu yoktur.
şimdi ise ajax.asp adlı sayfamızı oluşturalım,
response.charset = "iso-8859-9"
ad = request.form("adsoyad")
If Len(ad) < 1 then
response.write "Adsoyad alanını boş bıraktınız"
Else
response.write "Forma yazılan bilgi <strong><u>"&ad&"</u></strong>'dır"
End If
%>
Bu sayfada pek yabancı işlem yapılmamış. Bir charset atanmış ve post ile gönderdiğimizden aynı şekilde verimizi alıp sınamışız.
Bu örneği sizlere birşeyler çağırıştırması açısından hazırladım. Ajax bu kadar basit mi? Hayır kesinlikle, ve yapılabilir en basit işlem budur. Javascript bilginizi zorlayarak bu mini modülü geliştirebilir daha esnek bir form işlemi hazırlayabilirsiniz.
Bu örneği download etmek için tıklayınız.
Tavsiye Kaynaklar;
1. Ajax TR
2. WikiPedi
3. Ajaxian (İngilizce)
Etiketler : ajax programlama xmlhttp xmlhttprequest nesne activexobject jscript length encodeuricomponent escape setrequestheader open send responsetext innerhtml function form post id this.id
İçeriği takip etSayfayı YazdırPermalink34 yorum var
#97.-fatiherikli-22 Mart 2007 Perşembe
Süper, teşekkürler SrcnCkr. Başlangıcı yapıldığına göre devamı gelir heralde 
#98.-LineStar-23 Mart 2007 Cuma
eline sağlık cok yararlı ve güzel olmus
Tsarım açısıdna site harika bu ajaxın yanında bu link yönetiminide anlatırsanız çok güzel olur ... Tebrikelr kolay gelsin .
Aslında ajaxla fazla bi alakası yok
http://www.aspogren.net/kaynak-oku/82/asp-ile-ajax-kullanimi.html#yorum-oku
bu şekilde linkleri göstermenin mantığı nedir bunu merak ediyorum aslında fazla da araştıramadım ama ben gibi bi çok kişinin merak ettiğini biliyorum .
#103.-SrcnCkr-24 Mart 2007 Cumartesi
şurada yaptığım arama sonucundan aldığım değerleri incelemeni tavsiye ederim. Bunun için iyi bir split bilgin ve hata yönetimi kabiliyetin olmalı 
#104.-mrlmz-24 Mart 2007 Cumartesi
evet içersinde splitin olduğu aşina yanlız bu hata yönetimi olayını nasıl yaparım o konu düşünüdüyo beni cevap için teşekkürler kolay gelsin .)
#111.-opencoder-26 Mart 2007 Pazartesi
ajax ile asp afedersin ama ben anlayamadım
ajax denmesi için php olması gerekmezmi buna atlas desek
#112.-SrcnCkr-28 Mart 2007 Çarşamba
atlas başka bir betik, ajax başka bir betik. Bu konu hakkında araştırma yapmadım ama ajax+asp'nin atlas olmadığını çok iyi biliyorum. Lütfen google'da araştırınız.
#123.-kerem aslan-04 Nisan 2007 Çarşamba
Gayet güzel bir çalışma, sayfa yüklenirken "sayfa yükleniyor" yazısı çıkıyor. Peki formu gönderdiğimizde "kayıt ediliyor bekleyiniz" gibi bir ibare çıksa...bunu nasıl ekleyebiliriz?
Teşekkürler
#124.-SrcnCkr-04 Nisan 2007 Çarşamba
Bu konu geniş ajax uygulamasına girer. Orada 4 ve 200 durumları belirtiliyor. Onun üzerine araştırma yapman gerekir.
#144.-kerem aslan-10 Nisan 2007 Salı
hadi canım sende, önce preload yaparken dar uygulamada sonra yaparsamı geniş uygulama. Dedene bu uyguamayı ben yapmadım yada pek fazla bilgim yok.
kolay gelsin
#149.-SrcnCkr-14 Nisan 2007 Cumartesi
Kerem, tanımadığın kişileri böyle yargılama hakkını nereden buluyorsun. Bu siteyi komple oluşturan kim? Buradaki Ajax betiklerini hazırlayan kim? Ara, profilimide göz önüne al sonra yorumunu yap.
Burada amacımız ASP anlatmak. Eğer ki ben burada her dili verirsem işin cıvığı çıkmaz mı?
Sen öyle düşün, umrumda değil. Burada bilgi alacak adam gelir, arar bulur. Giderkende senin söylediklerini söylese bile hiç farketmez. Biz işimizi yapar geçeriz.
#151.-buse seçkin-16 Nisan 2007 Pazartesi
bilgileriniz güzel sercan bey böyle devam edin
#154.-Burak Yılmaz-17 Nisan 2007 Salı
Sevgisiz kerem (sevgili keremin tam tersi) , ajax bilmeyen adam ajax ile ziyaretçi defteri yapabilirmi. Hadi diyelim hazır bişeyi aldı. Tasarımı deistirdi yaptı. Peki bu dersi kim yazdı. Ara bakalım nette bu ders baska sitede varmı??? Belki vardır Eklenmiş olabilir. Ozman tarihlere bakda konus
#156.-omer olmez-19 Nisan 2007 Perşembe
Arkadaşın yaptığı yorum pek yapıcı olmamış sonuçta işte eline klavyeyi, alan yazıyo bişeyler...
Sormak istediğim bu javascripten nedense çok tırstım ben Hakkı Öcal'ın kitabından başka da kaynak yok gibi bişey javascript konusunda ne tavsiye edersiniz ?
#157.-fatiherikli-20 Nisan 2007 Cuma
Javascript'ten korkmana gerek yok. Biraz gıcık bir dil ama alıştıktan sonra yapamayağın şey yoktur. Temel işlemleri öğrensen yeterli. Kaynak için [url>http://www.w3schools.com adresini ziyaret edebilirsin.
#162.-SrcnCkr-21 Nisan 2007 Cumartesi
İyi iş yapan taşlanır. Biz bu ortamı yarattığımızda ve editör arkadaşlar almaya karar verdiğimizde ilk politikamız "kendi yazılarınız olmalı" idi. 4 siteyi karıştırır alıntı yapar ve binlerce döküman yazar sadece işi reklama dökerdim. Ama yapmadım, yapmadık. Gelen once editör başvuruları bu koşulu sağlayamadı. şuan aktif olarak fatiherikli ve ben yazıyoruz.
Ve ikinci görüşümüz, yapılacak fiili saldırıları göz ardı etmek. İstesem o yorumu silerim yada onaylatmazdım. Özgür görüş alanı ve o arkadaş varsın öyle düşünsün. O satırı atlayın okurken.
Bahsettiğim diğer yorumlarımda. Tüm bilgilerimin bulunduğu pc'mde bir HDD hasarı oldu ve verilerim kayboldu. Bu demekki epey geriye düştüm. Servisten geldiğinde (Pc) ve kaybımı eşitledikten sonra yönetim olarak aldığımız bir karar var. (CSS, SQL, Xhtml, Javascript ve eğer editör bulursak PHP üzerine siteler açmayı düşünüyorum.) Her birinin domainii hazır ama kaybolan verilerimin içinde %60'lık yedeksiz projede vardı. Sağlık olsun başlarız tekrar.
Dedik ya amacımız reklam değil. İstesek sitede bulunan reklamlara tıklanmadan yazıları okutmazdık. İşe yarayan bilgiyi sunmak amacımız. Kimileri gibi sayfalarca reklam doldursaydık, alıntı yapıp altta şurdan aldık yazsaydık belkide şuan değerli bir site olacaktık. Böyle olacaksak, olmasın istemiyoruz.
Yeniyiz. 1 yıl 2 aylık siteyiz ama Alexa ve Google değerlerimiz bir çok siteden daha iyi. Bir çok sitede linkimiz var (hemde hiç tanımadığım kişilerin sitelerinde) Bu demekki iyi yoldayız.
Görüşmek üzere...
#164.-elif-21 Nisan 2007 Cumartesi
sercan arkadaşım oldukca başarılı bir webmaster ne kadarda bana ögretmesede asp css vs yinede kötü konuşmalarını istemem neyse sercan kib görüşürüz yazılarının devamını bekliyoruz inş yakında devamlı burada olacağım ;)
#166.-mrlmz-23 Nisan 2007 Pazartesi
Sitenizin bi cazibesi var ilk başta, yapacağım siteye bende koycaktım bi link ancak bi türlü bitiremiyorum
Ajax konusuna ağırlık verirlirse daha güzel şeyler çıkacaktır ortaya , bu arada boş ver klavyesi olan yazsın .) Kolay Gelsin .
internetde birsürü arastırma yaptım fakat çok fazla asp ile eyceks anlatılmıyor genelde php örnekleri var bunun sebebi nedir? eyceks asp ile dahamı zor yada php ile eyceks dahamı uyumlu çalısıyor?
#210.-Serdar Sanrı-03 Haziran 2007 Pazar
Arkadaşlar;
Ajaxla çağırdığım bazı sayfalarda session sonlanıyor kendi kendine. timeout dan kaynaklandığını annediyordum fakat maks timeout vermeme rağmen yine arada db kontrolü yaptığım bazı ajax uygulamalarında uid değerini alamadığını ve dolayısıyla hata verdiğini gördüm. Bunu farklı bir sebebi olabilirmi. bu hatayı özellikle standart prototype üzerindeki Ajax.periodicalUpdater fonksiyonu ile sürekli güncellenen sayfalarda alıyorum. örn sürekli mesaj kontrolü gibi.
#285.-Emre-18 Temmuz 2007 Çarşamba
Merhaba;
Bu faydalı bilgi için teşekkürler ancak şöyle bir problem var. Bu verilen kodları aynen denediğim halde bir türlü sonuca ulaşamadım. Ne lokal'de nede uzak sunucu da denediğim halde çalışmıyor. Hatayı nerede aramam gerekir? Bu arada tarayıcım firefox ama ie ile de denedim sonuç yine hüsran. Bilgi verirseniz sevinirim...
#288.-SrcnCkr-19 Temmuz 2007 Perşembe
Browserda Javascript etkin olup olmadığına bakınız. Eğer etkinse googleda araştırma yapmanızı öneririm.
#351.-muharrem-01 Ekim 2007 Pazartesi
şimdi yaptık ama türkçe karekterleri almıyor bu konuda ne yapmamız gerekiyor ajax.asp windows-1254 yaptım ama gine türkçe karakterleri almadı
windows-1254 ve charset=iso-8859-9 bunlar tr karakterler için. eğer onlar doğruysa server locasyonu yurt dışı olduğunda genelde bu tarz sorunlar da sık sık yaşanıyor.
#374.-Erol AKYUz-20 Ekim 2007 Cumartesi
Arkadaslar asp içinde ajaxtabs kullandım ama tablar arası geçişlerde scroll herseferinde yukariya doğru kayıyor bunu engellemenin bir yolu varmıydı. bu ne gibi sorun yaratiyor derseniz ornegin tab1 kısa bir açıklama içeriyor tab2 daha uzun bir açıkma içeriyor. daha fazla satır içeren taba geçtiğimide sürekli scrolu tutup aşağıaya kaydırmak zorunda kalıyorum. bu da sorun oluyor.
http://authors.aspalliance.com/jimross/Samples/MaintainScrollDemo.aspx
bu linkte kod isime yarar ama aspx de yazılmıs bunu asp de kullanmam gerekiyor
tesekkurler
#420.-Cengiz-21 Kasım 2007 Çarşamba
Sercan kardeş şu ajax ile yıldılı oylama olayına da biraz değinsen şurada bu konu beni hasta etti çözemedim kaç zamandır.
#431.-Serkan TOGAL-01 Aralık 2007 Cumartesi
Türkçe karakter olayı baya bir sorun oluşturmaktadır. Bunun çözümü ise arkadaşlar
ajax.asp ye şunları ekleyin.
Response.ContentType = "text/xml"
Response.Charset = "iso-8859-9"
Response.Expires = - 1
Response.Expiresabsolute = Now()- 1
Response.AddHeader "pragma","no-cache"
Response.AddHeader "cache-control","private"
Response.CacheControl = "no-cache"
