Ubuntu Türkiye Forum

Yazılım => Programlama => Konuyu başlatan: sudusleri - 20 Nisan 2010 - 13:05:46

Başlık: [Çözüldü] Javascript ile Metin Kutusuna Tarih Yazdırmak
Gönderen: sudusleri - 20 Nisan 2010 - 13:05:46
Geliştirmekte olduğum PHP tabanlı bir yazılım için şu tür bir koda ihtiyacım var.
Elimde 4 tane metin kutusu var. İlk kutuya elle bir tarih gireceğim (YYYY-AA-GG) olacak şekilde. Diğer üç kutuya bu tarihi her bir kutuya dört ay arttırarak otomatik olarak yazdırmak istiyorum sayfa yenilemeden yada bir buton yardımı ile..

Ör:

Kutu 1: 2010-01-01 (Elle girilecek)

Kutu 2: 2010-04-01
Kutu 3: 2010-08-01
Kutu 4: 2010-12-01

Bu sanırım javascript ile yapılabilir (Başka çözümlere de açığım).

Yardımcı olabilecek arkadaşlara şimdiden teşekkürler..
Başlık: Ynt: Javascript (Ajax) ile Metin Kutusuna Tarih Yazdırmak
Gönderen: utdmr - 20 Nisan 2010 - 13:09:15
Ajax daha çok sunucu-istemci arasında işlemler için kullanılır, dediğiniz işlemin yapılması JavaScript. JavaScript yazdığınız anda güncelleyebilir diğer kutuları, ancak kod hakkında yardımcı olamam...
Başlık: Ynt: Javascript ile Metin Kutusuna Tarih Yazdırmak
Gönderen: sudusleri - 20 Nisan 2010 - 13:13:05
Ajax daha çok sunucu-istemci arasında işlemler için kullanılır, dediğiniz işlemin yapılması JavaScript. JavaScript yazdığınız anda güncelleyebilir diğer kutuları, ancak kod hakkında yardımcı olamam...

Teşekkür ederim.. düzeltiyorum.
Başlık: Ynt: Javascript ile Metin Kutusuna Tarih Yazdırmak
Gönderen: mce - 21 Nisan 2010 - 13:04:09
Javascript bilmiyorum aslında ama w3schools'u karıştırarak bir şeyler yaptım. İşinize yarar umarım.

Java ile Javascript çok farklı şeyler olduğu için konunun yeri de burası değil ayrıca
Kod: [Seç]
<html>
<head>
<title>Jscript</title>
<script type="text/javascript">
function oto() {
  //Girilen tarihi oku
  var tarih = document.getElementsByName("tarih")[0].value;
  var yil = parseInt(tarih.substring(0, 4));
  var ay = parseInt(tarih.substring(5, 7));
  var gun = parseInt(tarih.substring(8, 10));
 
  //Her bir kutuya tarihi 4 ay arttırarak yazdırır.
  for(var i=0; i<3; i++) {
    ay = ay + 4;
if(ay > 12) {
   ay = ay % 12;
   yil++;
}
var s = yil + "-" + ay + "-" + gun;
document.getElementsByName("tarih")[i+1].value = s;
  }
}
</script>
</head>
<body>
Tarih: <input type="text" name="tarih" onblur=oto() /></br>
Tarih: <input type="text" name="tarih" /></br>
Tarih: <input type="text" name="tarih" /></br>
Tarih: <input type="text" name="tarih" />
</body>
</html>
Başlık: Ynt: Javascript ile Metin Kutusuna Tarih Yazdırmak
Gönderen: sudusleri - 21 Nisan 2010 - 13:48:38
Çok teşekkür ederim... tam istediğim gibi ancak ufak bir detay var...

Arttırdığı tarihlerde tek basamaklı gün ve ay hanelerinde rakamın önüne sıfır koymuyor.. Sıfırı da koysa mükemmel olur benim için..
ayrıca metin kutularının name="tarih" değeri hepsinde sabit olduğu için veritabanına kayıt işleminde sorun çıkartır diye düşünüyorum..

Başlık: Ynt: Javascript ile Metin Kutusuna Tarih Yazdırmak
Gönderen: mce - 21 Nisan 2010 - 14:50:42
Biraz uğraştım ama fazla bilgim olmadığı için yapamadım. Kusura bakmayın.
"tarih" değerini javascript için kolaylık olsun diye verdim, değiştirince javascript kodu biraz daha karışıyordu. Daha kolay bir yol var mıdır bilemiyorum.  Hepsine farklı id değeri verirseniz işiniz olur herhalde. Web programlama ile çok ilgim yok yanlış da bilgi vermek istemem.
Başlık: Ynt: Javascript ile Metin Kutusuna Tarih Yazdırmak
Gönderen: sudusleri - 21 Nisan 2010 - 14:58:00
teşekkür ederim.. bu kod üzerinde çalışacağım..
Başlık: Ynt: Javascript ile Metin Kutusuna Tarih Yazdırmak
Gönderen: sarimura - 22 Nisan 2010 - 01:16:15
Yukarda verilen kod üzerinde çok değişiklik yapmadan bir fonksiyon yazarak güncelledim. Tabi istediğiniz işi yapmak için bir dolu yöntem var. Aşağıdaki sanırım istediğinizi yapıyor. İstediğiniz şekilde uzunluğunu değiştireblirsiniz.

Tavsiyem biraz "regex" kurcalamanızdır. Google amcaya "javascript regex" sorarak güzel fikirler edinebilirsiniz.

İyi çalışmalar.

Kod: [Seç]
<html>
<head>
<title>Jscript</title>
<script type="text/javascript">
function oto() {
  //Girilen tarihi oku
  var tarih = document.getElementsByName("tarih")[0].value;
  var yil = parseInt(tarih.substring(0, 4));
  var ay = parseInt(tarih.substring(5, 7));
  var gun = parseInt(tarih.substring(8, 10));
 
  for(var i=0; i<3; i++) {
    ay = ay + 4;
if(ay > 12) {
   ay = ay % 12;
   yil++;
}
var s = yil + "-" + sayiDuzenle(ay, 2) + "-" + sayiDuzenle(gun, 2);
document.getElementsByName("tarih")[i+1].value = s;
  }

  function sayiDuzenle(sayi, uzunluk) {
    var r = "" + sayi;
    while (r.length < uzunluk) {
        r = "0" + r;
    }
    return r;
  }
}
</script>
</head>
<body>
Tarih: <input type="text" name="tarih" onblur=oto() /></br>
Tarih: <input type="text" name="tarih" /></br>
Tarih: <input type="text" name="tarih" /></br>
Tarih: <input type="text" name="tarih" />
</body>
</html>
Başlık: Ynt: Javascript ile Metin Kutusuna Tarih Yazdırmak
Gönderen: sudusleri - 22 Nisan 2010 - 08:13:59
Teşekkür ederim.. Çok faydalı oldu..