JSON ve ASP

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:

PHP:
  1. <%@ Language = "Jscript"%>
  2. var json = {"adi":"Mustafa","soyadi":"Kara"};
  3. Response.write(json);

Daha karmaşık bir örnek olan veritabanından kayıtları alalım ve json nesnesi olarak işleyelim:

PHP:
  1. <%@ Language = "Jscript"%>
  2. Var RS = getRecordset("Select adi,soyadi from calisan","DSN=ajaxtr;uid=demo;pwd=demo;");
  3. Var json = "";
  4. While(!RS.eof){
  5.     İf (json != "") json+=",";
  6.     Json += "[\""+RS.fields(0).value+"\",\""+RS.fields(1).value+"\"]";
  7. }
  8. Json = Json.substring(1);
  9. 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.

Sayfalar: 1 2 3

Toplamda 5698 kez okunmuş.
Şu an 1 kişi okuyor.
En fazla 5 kişi aynı anda okumuş.
Bugün 26 kez okunmuş.

Etiketler:

1 oy2 oy3 oy4 oy5 oy (14 oy, ortalama 4.14) Oylanıyor ... Oylanıyor ...

  1. PHP ve Yerleşik DOM Sınıfları
  2. Sağlamlığı Kanıtlanmış Tekniklerle Web 2.0 AJAX
  3. Same Origin Policy ( Aynı Kaynak Politikası)

Trackback Yorumları takip et Baskı Önizleme

5 yorum var

  1. # Acemi Ajax'ci | 17 Eylül 2007, 16:35 Gravatar

    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…

  2. # mustafa_kara | 21 Eylül 2007, 21:32 Gravatar

    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.

  3. # turunc4u | 28 Eylül 2007, 11:08 Gravatar

    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?

  4. # mustafa_kara | 29 Eylül 2007, 11:46 Gravatar

    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)
    %>

  5. # turunc4u | 01 Ekim 2007, 13:43 Gravatar

    Teşekkürler. Janberka’da aynı örneği aspye çevirmiş. Bende siteme koydum :)

Yorum yazın

sayfa sayacı