Skip to content

BetulBircan/XMLHTTPREQUESTVeriCekme

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Proje: XMLHttpRequest ile jsonplaceholder kullanılarak içerisindeki user bilgilerini yazdırma

Bu projeyi XMLHttpRequest ile " https://jsonplaceholder.typicode.com/users " üzerinden kullanıcın bilgilerini butona tıkladığımızda tabloya yazdırmak için oluşturdum. Tabloya yazdırmamın sebebi kullanıcının bilgilerinin daha derli toplu bir şekilde göstermek.

Bunun için ilk başta index.html sayfası oluşturdum ve button oluşturmak için <input type="button" id="getUsers"value="Get All Users"> kodunu, tabloyu oluşturmak için de

<table>
        <!-- başlık oluşturmak için thead etiketinden yararlanıldı-->
        <thead>
                <tr>  satır oluşturam
                <th>User Id</th> başlık oluşturma 
                <th>Name</th>
                <th>UserName</th>
                <th>Email</th>
                <th>Adress</th>
                <th>Phone</th>
                <th>WebSite</th>
                <th>Company</th>
            </tr> 
        </thead>
        <tbody id="table">   <!-- kullanıcın bilgilerinin yazdırılması için yani satır sütun şeklinde, tbody etiketinden yararlanıldı.
            
        </tbody>
    </table>

kodlarını kullandım. Daha sonra da style.css dosyası oluşturarak tablonun sınır çizgilerini oluşturmak için sayfaya ve tablolara bazı stiller oluşturdum.

table {
    /* buttonla table arasında boşluk oluşturma */
    margin: 10px;
    /* tablonun sınır çizgisini oluşturmak için kullanılan stil kodları */
    border: 5px solid #ddd;
}
/* tablonun başlıkları:userid,username..... */
th {
    /* tablonun sınır çizgisini oluşturmak için kullanılan stil kodları */
    border: 1px solid #ddd;
}
/* tablonun sütunları için */
td {
    /* tablonun sınır çizgisini oluşturmak için kullanılan stil kodları */
    border: 1px solid #ddd;
}
/* sayfanın body kısmına oluşturulan stil kodları */
body{
    text-align: center;
    background-color:blanchedalmond;
}
/* bu da buton,p gibi html etiketlerini ortalamak için oluşturulan stil kodları */
.ortala2 {
  /*sağdan ve soldan otomatik olarak ortlama soldan olarak  */
  margin-left: auto;
  margin-right: auto;
  width: 800px;
  text-align: left;
}

En sonunda da butona tıkladığımzda xmlhttprequest isteği ile bize verileri getirmesi için gerekli kodları request.js dosyası oluşturdum ve gerekli kodları oraya yazıp projemi tamamladım.

// buttona tıkladığımızda verinin gelmesi için oluşturulan js kodu 
document.querySelector("#getUsers").addEventListener('click',getUsers)

function getUsers() {
    
    // xmlhttprequest kullanılarak veri çekmesi için yeni xmlhttprequest nesnesi oluşturuldu.
    const xhr = new XMLHttpRequest()
    
    //"https://jsonplaceholder.typicode.com/users" apisinden get metodu ile veriyi alması için open özelliğ kulllanıldı
    xhr.open("GET","https://jsonplaceholder.typicode.com/users",true)
    
    // sayfada herhangi bir değişiklik olduğunda yani sunucudan bilgi istendiğinde tetiklenmesi için onreadystatechange özelliği kullanıldı
    xhr.onreadystatechange = function () {
        // burda da json.parse ile kullanıcının bilgilerinin object türüne dönüştürüldü.Çünkü bilgileri tabloya düzgünce yazdırabilmek için
        let info = JSON.parse(this.responseText)
        let html = "";
        
        // sunucu hazır olduğunda yani işlem başarılı  olduğunda 
        if(this.readyState == 4 && this.status == 200)
        {
            
            // burda da 10 tane kullanıcın bilgilerine ulaşıp tabloya yazdırmak için foreach döngüsünden yararlanıldı.
            info.forEach(element => {
                
                // html değişkenine html kodlarını yazdırmak ve sütuna kullanıcını id,username gibi bilgileri göstermek için yazılan js kodları da bunlardır.
                html += `
                <tr>
                    <td>${element.id}</td>
                    <td>${element.name}</td>
                    <td>${element.username}</td>
                    <td>${element.email}</td>
                    <td>${element.address.street},${element.address.suite},${element.address.city},${element.address.geo.lat},${element.address.geo.lng}</td>
                    <td>${element.phone}</td>
                    <td>${element.website}</td>
                    <td>${element.company.name},${element.company.catchPhrase},${element.company.bs}</td>
                </td>
            </tr>

                `
            });
        }
            // burda da tabloya yazdırma işlemi yapıldı.
            document.querySelector("#table").innerHTML = html
        
    // son olarak da sunucunun bilgileri bize göndermesi için send özelliği kullanıldı.
    xhr.send()

    }
}

Projenin Son Çıktısı

butonatıklamadanonce

butonatıkladıktansonra

About

XMLHTTPREQUEST ile Get Metodu LKullanarak Veri Getirme

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors