AJAX & JSON Mustafa Ahmet KARA
Arkadaşlar tekrar merhabalar, bu akşam ise JSON serisinin sizlere ASP ile kullanımından bahsedeceğim. Eğer ASP üzerinde sunucu diliniz olarak Jscript kullanıyor iseniz zaten tamamiyle entegre durumdadır. Tüm özelliklerine erişebilirsiniz. Ama VBScript kullanıyorsanız güzel bir araç olan JSON ASP 1.3 ve ASP için programlama mantığına değişiklikler getiren ajaxed kütüphanesini inceleyeceğiz.
Bu çözümlerden bahsetmeden önce eğer ASP dilinizi Jscript olarak seçmişseniz JSON zaten Jscript’in alt kümesi ve doğal olarak desteklendiği için ekstra bir çabaya veya kuruluma gerçekten gerek yoktur. Bir örnek vermek gerekirse:
-
<%@ Language = "Jscript"%>
-
var json = {"adi":"Mustafa","soyadi":"Kara"};
-
Response.write(json);
Daha karmaşık bir örnek olan veritabanından kayıtları alalım ve json nesnesi olarak işleyelim:
-
<%@ Language = "Jscript"%>
-
Var RS = getRecordset("Select adi,soyadi from calisan","DSN=ajaxtr;uid=demo;pwd=demo;");
-
Var json = "";
-
While(!RS.eof){
-
İf (json != "") json+=",";
-
Json += "[\""+RS.fields(0).value+"\",\""+RS.fields(1).value+"\"]";
-
}
-
Json = Json.substring(1);
-
Response.write("["+Json.substring(1)+"]");
Bu fonksiyonla aşağıdaki çıktı oluşuyor.
[["Mustafa","Kara"],["Erhan","Burhan"],["Erhan","Yakut"]]
Tek geriye kalan istemci kodlarınızda XMLHttpRequest ile bu sayfaya çağrı yapmak ve eval komutunu çalıştırmak. Ama ASP üzerinde Jscript dilini kullanan benim haricimde tanımadığım ve genelde de VBScript tercih edildiği için diğer sayfalarda kullanılması daha zor olan JSON’un VBScript ile kullanılmasını tanıtacağım.
Toplamda 5555 kez okunmuş.
Şu an 1 kişi okuyor.
En fazla 5 kişi aynı anda okumuş.
Bugün 23 kez okunmuş.
Etiketler: ajaj, ajax, ajaxed, asp, json, json for asp
Trackback Yorumları takip et Baskı Önizleme

(14 oy, ortalama 4.14)
# Acemi Ajax'ci | 17 Eylül 2007, 16:35
Merhaba,
Aşağıdaki resimde nasıl bir sayfa hazırladığımı anlatmaya çalıştım. Şimdi bu sayfadaki açılır menüden isim seçip göster butonuna tıkladığımda alttaki çerçeveli bölümün değişmesini istiyorum. Bu bilginin veritabanından çekildiğini belirtmem gerek.
http://img516.imageshack.us/img516/863/sorups0.gif
Mootools ile form tetikleniyor ve alttaki çerçevede seçilen isme ait bilgiler dökülüyor. Kişinin fotoğrafı dahil. Tabi o bölgede aslında bir sayfa veya tablo yok. İçi boş bir div element var ve istenen bilgi orada çıkıyor. Asp ile formdaki action kısmına:
sayfa_adi.asp?kisiID=
yazıyorum ama kaç farklı yol denesem dahi seçtiğim id’ye ait bilgi gelmiyor. Yani daima ilk id’de çakılıp kalıyor. Alt taraftaki div kısmında loading resmi çıkıyor ama yine de bilgi değişmiyor. Bu işin yolu json’mudur? Öyleyse, mootools ile nasıl bir kod düzeni kurmam gerekiyor? Şimdiden teşekkürler…
# mustafa_kara | 21 Eylül 2007, 21:32
Merhabalar,
JSON bunun çözümü değil ama sorun başka bir sebepten oluşuyor. İki türlü olasılık var
1. Ya div’in idlerinde ilk seçtiğin kişi bilgileri eklendiğinde bir değişiklik oluyor.
2. Yada sonucu browser cache’sine alıyor. Dolayısıyla her cağrıda aynı sonucu getiriyor. Bunu aşmak için adresinin sonuna random bir sayı ekleyebilirsin. yani adresin http://www.test.com?sayfa_adi.asp?kisiID= şeklinde ise
var url= “sayfa_adi.asp?kisiID=” + selKisiId + “&Rnd=”+Math.random();
şeklinde değiştirmen.
Ama en doğru çözümü sayfanı görerek söyleyebilirim.
# turunc4u | 28 Eylül 2007, 11:08
http://www.saurdo.com/11/09/ajax-e-mail-submitter-release
Asp ve ajax hakkında o kadar az kaynak var ki, burdaki örneğin asp ile uyumlusunu nasıl yapabiliriz?
# mustafa_kara | 29 Eylül 2007, 11:46
Baksettiğin örneği aspye çevirmek çok basit aslında değişmesi gereken 2 adet dosya var
1. email/email.js içinde write.php metinini write.asp olarak değiştirmek.
2. email/write.php dosyasını write.asp olarak değiştir ve içeriğini şu şekilde ayarla
< %
function WriteToFile(FileName, Contents, Append)
on error resume next
if Append = true then
iMode = 8
else
iMode = 2
end if
set oFs = server.createobject("Scripting.FileSystemObject")
set oTextFile = oFs.OpenTextFile(FileName, iMode, True)
oTextFile.Write Contents
oTextFile.Close
set oTextFile = nothing
set oFS = nothing
end function
WriteToFile("file.txt",","+Request.QueryString("var"),True)
%>
# turunc4u | 01 Ekim 2007, 13:43
Teşekkürler. Janberka’da aynı örneği aspye çevirmiş. Bende siteme koydum