|
|
| Ajax ile Asp'de Kayıt Ekleme |
| 8/30/2009 tarihinde , Alican tarafından yazılmış ve 685 kere okunmuş. |
|
|
Yazı dizisinin ilk yazısı olan bu yazımda asp ve ajax ile kayıt ekleme işlemini anlatıcam.Hemen kodlara geçeyim. Aşağıda vereceğim Ajax kodunu web sayfanızın <head></head> tagları arasında yerleştirmeniz sizin için yeterli olacaktır.
<script> function yeni_nesne(){ 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 I = 0; I < aktifform.elements.length; I++){ name = aktifform.elements[I].name; value = aktifform.elements[I].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); ekranayaz.innerHTML = 'Lütfen bekleyin..'; nesneiste.onreadystatechange = function() { if (nesneiste.readyState == 4 && nesneiste.status == 200) { ekranayaz.innerHTML = nesneiste.responseText; } else { ekranayaz.innerHTML = ''; } } return false; } </script>
Bu kodlar sizin verileri göndermenize ve sayfadaki mesajı yazdırmanıza yarıyor. Gelelim asıl cikcikli kısma yani kodları tetiklemeye. Onun içinde oluşturduğumuz form elementine onsubmit değeri atıyoruz oda şöyle :
<form id="form" onsubmit="return AoL(this.id,'sonuc','Kaydet.asp')">
</form>
Burada dikkat etmeniz gereken kısım sonuc ve Kaydet.asp kısımlarıdır. Sonuc ne işe yarıyor ? Sonuc, formu gönderdiğimizde yapılan işlemden sonra verilecek cevabı atıyorum "Kayıt Eklendi" bulunduğunuz sayfada yazdırmaya yarıyor. Oda şöyle :
<table border="0" width="95%" cellpadding="0" cellspacing="0" align="center"> <tr> <td width="75" height="30">İşlem </td> <td width="10">:</td> <td id="sonuc"></td> </tr> </table>
Kırmızı ile belirttiğim gibi idsini sonuc olarak atadığımız yere işlem sonunda verilecek cevabı yazdıracaktır. Peki Kaydet.asp nedir ? Kaydet.asp işlemlerimizin yapıldığı yani formumuzun işlendiği sayfadır. Bu sayfayı kendinize göre değiştirebilirsiniz. Gelelim ajax ile karşılaşacağımız ilk soruna. Herşey tamam tıkır tıkır işliyor ama türkçe karakterler bozuk görünüyor. Her programlama dilinde olduğu gibi bu sorun ajax ile de karşımıza çıkıyor. Bu sorunun aşımı için bir sürü yol ama hepsi çalışmıyor ve kişiden kişiye farklılık gösteriyor. Peki en sağlam çözüm nedir ? Replace. Replace ile gelen veriyi süzüyoruz ve veritabanına öyle kaydediyoruz. Onun içinde aşağıdaki kod gerekiyor.
'// ----- CREATED BY JDİZAYN.COM ----- Function tr(acaks) acaks = replace(acaks,"Ü","Ü") acaks = replace(acaks,"Åz","Ş") acaks = replace(acaks,"Äz","Ğ") acaks = replace(acaks,"Ç","Ç") acaks = replace(acaks,"İ","İ") acaks = replace(acaks,"Ö","Ö") acaks = replace(acaks,"ü","ü") acaks = replace(acaks,"ÅŸ","ş") acaks = replace(acaks,"ç","ç") acaks = replace(acaks,"ı","ı") acaks = replace(acaks,"ö","ö") acaks = replace(acaks,"ÄŸ","ğ") tr=acaks End Function
Gördüğünüz anlamsız kodlar türkçe karakterlerin form ile gönderildikten sonraki halleridir. Replace ile işte bu saçma sapan ifadeleri temizliyoruz. He bunun ne gibi bi dezavantajı olabilir uzun bir metni replace ile temizlemek sitenizi aşırı yorabilir. Kullanımıda örn : isim = tr(Request.Form("isim")) şeklindedir.
Evet yazmayı düşündüğüm bu yazı dizisinin ilk kısmı bitmiş oldu.
|
|
|
| Etiketler : asp , ajax , ajax kayıt ekleme , asp ajax |
|
|
|
|
| Bu yazıya hiç yorum eklenmemiş. |
| Sizde bu yazıya yorum
yapabilirsiniz.. |
|
|
|
|
| ●
Duyuru |
|
| Okul dolayısıyla çalışmalara biraz ara :) |
|
|
|
|
|
|
|
| |
|
|
|