JQuery ile Parametreleri Nesnelere Dönüştürmek

  • 21.10.2015
  • tayyipyetis
  • JQuery

jqueryMerhaba arkadaşlar, bu makalede yine önemli bir ihtiyaçtan doğan pratik bir çözümden bahsedeceğim zira İnsanoğlu ve onun inşa ettiği tüm yapılarla birlikte web siteleri de her geçen gün modernleşiyor çok yakın zamana kadar kullandığımız bir teknoloji bir sabah yeni bir proje, eklenti, kütüphane vs. ile artık tarihe karışıyor. Herhalde başka hiçbir sektör bir yazılımcının parmaklarının ucuyla yeni bir şeyler üretmesinden daha hızlı bir ürün ortaya koyamaz zira kullandığımız şeyler sahip olduğumuz en hızlı organlarımız; beynimiz ve parmaklarımız...

Bu makalede ise yine Github üzerinde kares isimli kullanıcı tarafından oluşturulan jquery.parseparams.js eklentisini örnekleriyke tanıtacağım. Github sayfasına https://gist.github.com/kares/956897 adresinden ulaşabilirsiniz. Bu eklenti ile .net kütüphanesinde NameValueCollection isimli sınıfın yaptığı işlemlerin benzerini yapabilirsiniz. bu sınıf ile .net'te key value mantığında string ifadeler ile çalışabiliyorsunuz. örneğin; "deger1=a&deger2=b&deger3=c" şeklindeki ifadeler için ekleme, çıkarma, değiştirme gibi işlemler yapabilirsiniz. jquery.parseparams.js eklentsi ile ister querystring, ister cookie ya da istetidiğiniz herhangi bir şekilde ürettiğiniz verileri okuyup nesnelere atabilir ve bunlar içerisinde arama yapabilir, ekleme, çıkarma, güncelleme işlemlerini yapabilirsiniz.

Önce kütüphaneyi githubdan indirip aşağıdaki gibi sayfanıza ekleyin

<script type="javascript" src="/jquery.parseparams.js"/>

örneğin cookie'de "marka=ford&model=focus&renk=gri" şeklinde bir değerimiz tutulsun bunu sayfa yüklendiğinde okuyalım ve her bir değeri ekranda gösterelim

<script>
function cookiegetir(cookiename) {
   var name = cookiename+ "=";
   var ca = document.cookie.split(';');
  for (var i = 0; i < ca.length; i++) {
      var c = ca[i];
      while (c.charAt(0) == ' ') c = c.substring(1);
      if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
   }
   return "";
}

var cook = cookiegetir("arababilgileri");
$.each($.parseParams(cook), function (key, value) {
  alert(key + " " + value);
});
</script>

yukarıda cookiegetir fonksiyonuyla cookiden aldığımız değerin her bir key-value ifadesini bir nesnenin özelliği olarak alıyor ve tüm kayıtların içerisinde dolaşıyoruz.

var obj = $.parseParams("ali=1&veli=2&cem=3");
  delete obj.veli;
  $.each(obj, function (key, value) {
  alert(key + " " + value);
});

yukarıda ise istediğimiz bir key'i delete komutuyla siliyoruz.

var obj = $.parseParams("ali=1&veli=2&cem=3");
  obj.veli = "123";
  $.each(obj, function (key, value) {
  alert(key + " " + value);
});

yukarıda nesne içerisindeki veli key'inin değerini 123 olarak değiştiriyoruz. bu şekilde nesneler üzerinde yapabileceğiniz her türlü işlemi yapabilirsiniz. Querystring'leri okuyup bunlara göre işlemler yapabilirsiniz. eğer nesne kullanmadan yaparsanız split vs. alternatif yöntemler ile daha çok kod yazmak zorunda kalabilirsiniz.

Parametreleri Dizilere Dönüştürmek

function getcookievalues(str) {
    return str.replace(/(^\?)/, '').split("&").map(function(n) {
        return n = n.split("="), this[n[0]] = n[1], this
    }.bind({}))[0];
}

$.each(getcookievalues("a=0&b=1&c=2"), function(i, e) {
        alert(i + " " + e);
})

https://css-tricks.com/snipp...

Umarım faydalı olmuştur.

Mustafa Tayyip YETİŞ
Yazılım Geliştirme Uzmanı

Yorum Gönder

Diğer Makaleler

Etiketler