javascript etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
javascript etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

10 Eylül 2013 Salı

Merhaba arkadaşlar bu yazımda kendi oluşturduğumuz json dosyasından nasıl verileri çekebileceğimizi anlatıcam . İlk önce bir json dosyası oluşturalım . Ben .txt uzantılı bir json dosyası oluşturuyorum .

 {  
   "k1":{  
      "kullanici" : "Ahmet" ,  
      "yas"          : "22" ,  
      "sehir"   : "Ankara"  
      },  
      "k2":{  
      "kullanici" : "Ayşe" ,  
      "yas"          : "29" ,  
      "sehir"   : "İzmir"  
      },  
      "k3":{  
      "kullanici" : "Jhon" ,  
      "yas"          : "25" ,  
      "sehir"   : "Barcelona"  
      }  
 }  

İstediğimiz kadar kullanıcı ekleyebiliriz . Ben şimdilik 3 tane ekliyorum . Şimdi index dosyamızı yazalım . Gereken html taglarımızı açalım . Body içerisinede id 'si istediğiniz bir isim olan bir div açalım .

<html>  
      <head>  
           <script type ="text/javascript">  
           </script>  
      </head>  
      <body>  
           <div id="results"></div>  
      </body>  
 </html>

Yaptıktan sonra script taglarımızın içine ajax isteğimizi başlatalım .

function ajax_get_json(){  
                     var hr = new XMLHttpRequest();  
                     hr.open("GET","json.txt","true");  
                     hr.setRequestHeader("Content-type","application/json",true);  
                     hr.onreadystatechange = function (){  
                          if(hr.readyState == 4 && hr.status == 200 ) {  
                               var data = JSON.parse(hr.responseText);  
                               var results = document.getElementById("results");  
                               //results.innerHTML = ("Kullanici :"+data.kullanici + " <br/> Yaş : " + data.yas+ " <br/> Şehir : " + data.sehir);  
                               for (var obj in data) {  
                                    results.innerHTML += data[obj].kullanici +" "+ data[obj].yas + " yaşında " +data[obj].sehir + " yaşıyor . <hr/>" ;  
                               }  
                          }  
                     }  
                     hr.send(null);  
                     results.innerHTML =""  
                }  


Teker teker satırları inceleyelim.

İlk olarak bir fonksiyon oluşturalım. XMLHttpRequest xml nesnemi kullanarak bir hr adından bir obje oluşturuyorum . XMLHttpRequest ' i kullanmamın amacı gereksiz kodlamadan kurtamasıdır . Developerlar arasında bir rüya olarak adlandırılır. Gelelim ne işe yaradığına

- Web sayfalarını yeniden yüklemeye gerek kalmadan günceller.
- Sayfa yüklendikten sonra serverdan veri istegi gönderir .
- Sayfa yüklendikten sonra serverdan veri alır .
- Arkaplanda servera veri gönderir.

hr nesne oldugundan XMLhttpRequest 'in metodlarını kullanabilirim . open metodumu kullanarak gereken detayları yazıyorum .

 hr.open("GET","json.txt","true"); 

hr.open(method,url,async);  

Type get olucak belirtilen Url 'den verileri almamız için . URL : json.txt ve async : true yapıyoruz . True ile belirtilen http istegi eş zamanlı olarak işlenir.

 hr.setRequestHeader("Content-type","application/json",true); 

 setRequestHeader(header,value,async) 

header : belirtilen header adı
value : belirtilen header değeri , bizim değerimiz json

 hr.onreadystatechange = function (){  
 }  

onreadystateschange her an değişen readystates özellikleri fonksiyon olarak depolar.

if(hr.readyState == 4 && hr.status == 200 ) { 

readystates : 0 ile 4 arasında değişen XMLHttpRequest durumlarını tutar.

0 : istek başlatılamadı . (request not initialized )
1 : server iletişim kuruldu. (server connection established)
2 : istek alındı . (request received )
3 : istek işleniyor. (processing request )
4 : istek bitirildi ve cevap hazır (request finished and response is ready)

status :

200 : "OK"
404 : Sayfa bulunamadı (Page not found)

onreadystateschange olayı ile server cevabı işlenmeye hazır olduğunda neler olacağını belirtiyoruz .

readystates : 4 ve status : 200 olduğunda cevap hazır duruma geliyor.

 var data = JSON.parse(hr.responseText); 

data adında bir değişken oluşturuyoruz ve bu değişkene string olarak parse ediceğimiz JSON ' ı atyoruz.

var results = document.getElementById("results");  

results adında bir değişken oluşturuyorum ve bu değişkenime id'si result olan div e ulaşmasını sağlıyoruz . Artık results değişkenim ile div 'in içindeyim .

for (var obj in data) {  
           results.innerHTML += data[obj].kullanici +" "+ data[obj].yas + " yaşında " +data[obj].sehir + " yaşıyor . <hr/>" ;  
                     }  


result degişkenimle div'im içine obj değişkeni kullanarak verilerimi html olarak yazdırıyorum .

hr.send(null);

herhangi bir değer göndermeyeceğimizden null yapıyoruz.

Böylece kodlamamız bitmiştir . Unutmadan belirteyim yerel bir sunucuda kodları çalıştırmalıyız.Ajax işlemleri kullandığımızdan .

Umarım yararlı olmuştur . İyi çalışmalar...








1 Eylül 2013 Pazar

Merhaba arkadaşlar bu yazımda jquery ile bir tab uygulaması geliştireceğiz. İlk olarak html kodlarımızı yazıp jquery kütüphanemizi çagırıyoruz.

<!DOCTYPE html>
<html>
        <head>
                
                <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script> 
                
                <script type="text/javascript">
                
                
                </script>
                
                <style type="text/css">
                        
                </style>
        </head>
        <body>
                        
        </body>
</html>
Burda gereken html taglarımızı açtık ve script tagımızın içinde jquery kütüphanemizi çagırdık .Gerekicek olan javascript kodlarımız için yine script tagımızı açtık ve css degerlerimizi yazdıgımız style tagımızı açtık. Şimdi body taglarımızın içine ul yapısında tablarımızı ekliyoruz  ve id'sine tab diyoruz.

<body>
                        <ul id="tab">
                                <li ><a href="#">1. Tab</a></li>  
                                <li><a href="#">2. Tab</a></li>
                                <li><a href="#">3. Tab</a></li>
                        
                        </ul>
</body>
Burda li yapınsında bir tab oluşturduk . Şimdi bu ul yapımızı düzenliyelim .Style taglarımızın içini doldurmaya başlayalım .

ul ,li {padding :0px ; margin: 0px ; list-style :none }
                        a {text-decoration : none;}
                        body {font: 18px Calibra}
Burda body ye istedğimiz büyüklükte istedğimiz font stili kullanabiliriz.
ul#tab li{float: left; margin-right: 10px}
float:left ile elemanlarımız yan yana getiriyorum ve margin-right ile elementlerimin arasında boşluğu düzenliyorum .
ul#tab li a {background-color:#fff; display: block; border: 2px solid #ccc;padding: 3px 12px; color:#000 ; border-top-color:#e1e1e; border-left-color:#e1e1e1}
id'si tab olan li 'lerimin a 'larına özellik atıyorum . Daha düzenli gözükmesi için . Şimdi seçili tabımı göstermem gerekiyor. Bunu hem css ile hemde jquerydeki addClass metodu ile yapabiliriz. İlk olarak css ile yapmayı deneyelim . ul li yapısında ilk li'ye aktif classımı ekliyorum .
<li class="aktif"><a href="#">1. Tab</a></li> 
ul tablardan aktif classımız olan a'lara özellik atayalım .
ul#tab li.aktif a {background-color: #000; color: #fff; border-color: #000}
Şimdi üç tane tabımız oldugundan 3 tane içerik oluşturalım . Body taglarımızın içine div yapısını kullanarak ve id'side tab_icerik olsun.
<div class="clear"></div>
<div class="tab_icerik">
        1.tab içeriğidir.
 </div>
 <div class="tab_icerik">
        2.tab iceriğidir.
</div>
<div class="tab_icerik">
        3.tab iceriğidir.
 </div>
clear classı ile de temziliyoruz.
.clear{clear: both}
ul#tab {margin-bottom: 10px ; height: 30px}
div.tab_icerik{border: 2px solid #ddd ; padding: 15px ; color:#aaa}
değerlerimizi atıyoruz. Style değerlerimizi bitirdik ve artık jquery kodlarımızı yazmaya başlayabiliriz.İlk olarak aktif classımızı jquery ile de atıyabileceğimizi söylemiştik .Nasıl olacagınız görelim .
$(function(){
$("ul#tab li:first").addClass("aktif");

});
ul si tab olan li first filtrem ile seçiyorum ve addClass metodum ile aktif classımı ekliyorum . Şimdi divlerimizi gizlemeye geldi.
$("div.tab_icerik").hide();
$("div.tab_icerik:first").show();
hide metodum ile classı tab_icerik olan divlerimi gizliyorum ve yine first flitrem ile ilk div'imi seçerek show metoduyla gösteriyorum . Seçili olan div'imi göstermeliyim.
$("ul#tab li").click(function(){
var indis=$(this).index();
$("ul#tab li").removeClass("aktif");
$(this).addClass("aktif");
                        
Burda id'si tab olan li lerden herhangi birine tıklandığında (click metodumla ).Seçili olan index degerini indis değişkenime aktarıyorum .removeClass metodum ile aktif classımı kaldırıyorum ve seçili olan li'ye addClass metoduyla aktif classımı ekliyorum .Sıra seçili olan indisimin içeriğini göstermeye geldi.
$("div.tab_icerik").hide();
$("div.tab_icerik:eq("+indis+")").show();
tab_icerik classımı hide metoduyla gizliyoruz ve eq ile indis degerlerini eşit olan divlerimizi show metodyla gösteriyoruz.
 Böylece jquery ile tab uygulamamızın kodları bitmiş oldu.Umarım yardımcı olmuşumdur. İyi çalışmalar.
Subscribe to RSS Feed Follow me on Twitter!