Donanım Haber

Uygulama ile Aç
Kayıt
O

Onbaşı
21 Ağustos 2004
Tarihinde Katıldı
Takip Ettikleri
0 üye
Görüntülenme (?)
44 (Bu ay: 0)
Gönderiler Hakkında
O
2 gün
Çocuk Etkinlikleri Uygulaması Yayında

Ebeveynler için harika bir "Çocuk Etkinlikleri" uygulaması yayında.


Çocuğunuzla etkinlik yaparken hem kaliteli zaman geçirebilirsiniz, hem de çocuğunuzun birçok gelişim alanını destekleyebilirsiniz.


Özellikleri:

- Yaş gruplarına göre etkinlikler

- Kolay ve pratik

- Eğitici

- Beğendiğiniz etkinlikleri favorilere ekleyin ve kolayca ulaşın.

- Her türlü öneri, görüş, soru ve sorun için hızlı iletişim bölümü.

- Türkçe, İngilizce, Almanca, Rusça, İspanyolca, Fransızca


Uygulama Adresi:

play.google.com
Children's Activities - Apps on Google Play
https://play.google.com/store/apps/details?id=mikrosistem.etkinliklerv1




Uygulama içi görseller.


Yaş Gruplarına Göre Kategoriler

https://forum.donanimhaber.com/cache-v2?path=http://store.donanimhaber.com/d0/ce/67/d0ce67037e5ea272fc2f5aaf69e8a1c1.jpeg&t=0&width=480&text=1





Yaş Gruplarına Göre Kategoriler

https://forum.donanimhaber.com/cache-v2?path=http://store.donanimhaber.com/6f/ce/aa/6fceaa216961bc2a6415f7c0a3172fe4.jpeg&t=0&width=480&text=1



Yaş Kategorisi Detayı

https://forum.donanimhaber.com/cache-v2?path=http://store.donanimhaber.com/45/d0/bc/45d0bc821cbcd3b2e29d6a5fd08d8dd6.jpeg&t=0&width=480&text=1



Yaş Kategorisi Detayı


https://forum.donanimhaber.com/cache-v2?path=http://store.donanimhaber.com/51/59/eb/5159eb5ee034b217d0c94ed5917e5fea.jpeg&t=0&width=480&text=1




Etkinlik Detayı

https://forum.donanimhaber.com/cache-v2?path=http://store.donanimhaber.com/8f/91/60/8f916000d5e431f740c00f1e69f66dc8.jpeg&t=0&width=480&text=1




Beğendiğiniz Etkinliği Favorilere Ekleyin

https://forum.donanimhaber.com/cache-v2?path=http://store.donanimhaber.com/76/2d/8d/762d8deab1c746b8b8ee4f735b29e7c7.jpeg&t=0&width=480&text=1




Her Türlü Soru, Öneri ve Görüşleriniz için "Bize Ulaşın" Bölümü

https://forum.donanimhaber.com/cache-v2?path=http://store.donanimhaber.com/33/53/29/335329979dff14fc11702290a18661ff.jpeg&t=0&width=480&text=1
O
8 ay
Arama Motoru Optimizasyonu (SEO) Uygulaması Yayında

Uzun süredir üzerinde çalıştığım işinize fazlasıyla yarayacağını düşündüğüm uygulamayı sonunda yayına alabildim.

Kısaca uygulamamız sayesinde;

- Türkçe ve İngilizce olarak iki dilde kullanılabilmektedir.

- Seo Analiz

- Domain Takip

- Hosting Takip

- Ip Whois

- MD5, SHA-1, SHA-256 Şifreleme

- Notlar

- Site Analiz (Ahref, Alexa vb..) (Yakında)

- Alanadı Bildirimi (Yakında)


İşlemlerini rahat bir şekilde yapabilmektesiniz. Böylece sitelerinize ait önemli notları, uyarıları ve geliştirmeleri tek bir uygulama ile kolay bir yönetibileceksiniz. SEO analizleri sayesinde sitenizde güncel SEO kurallarını uygulayabileceksiniz. Uygulamamız SEO kuralları değiştiği sürece güncellenecektir. Sitelerinizi SEO kuralları ile bir adım öne çıkarın. Ayrıca şifreleme bölümü ile kolay bir şekilde MD5, SHA-1 ve SHA-256 şifreleme işlemlerini yapabileceksiniz.


Uygulamamıza ait bölümler yakın zamanda diğer versiyonlar ile daha da artacaktır.


Uygulama Adresi: https://play.google.com/store/apps/details?id=mikrosistem.seov1



Karşılama Ekranı

- Uygulamanın tanıtım ekranı.


https://forum.donanimhaber.com/cache-v2?path=http://store.donanimhaber.com/ea/3b/94/ea3b94f902737d23fb308f4b0c86df43.jpeg&t=0&width=480&text=1



Seo Analiz Ekranı

- Web sitelerinin seo analizini bu bölümden yapabilirsiniz.

https://forum.donanimhaber.com/cache-v2?path=http://store.donanimhaber.com/0e/bc/99/0ebc9973dc2706c637b51e31802ec3e5.jpeg&t=0&width=480&text=1





Seo Analiz Ekranı

https://forum.donanimhaber.com/cache-v2?path=http://store.donanimhaber.com/64/c5/b1/64c5b104b6a0fd5b956ec452a84084f7.png&t=0&width=480&text=1


Seo Analizi Yapılan Siteler Ekranı

https://forum.donanimhaber.com/cache-v2?path=http://store.donanimhaber.com/82/fb/0b/82fb0b8855b4bad0e95ff9e96150efb5.png&t=0&width=480&text=1


Domain Whois Ekranı.

- Web sitelerine ait whois sorgulaması ve kaydını bu ekrandan yapabilirsiniz.

- Ayrıca web sitelerine ait hosting tarihlerini de kayıt altına alabilirsiniz.

- Böylece hostinglerinizi daha rahat takip edebileceksiniz.

https://forum.donanimhaber.com/cache-v2?path=http://store.donanimhaber.com/e3/6e/c4/e36ec4cb8d3bf06b596adf732cf2f56d.png&t=0&width=480&text=1


Domain Whois

https://forum.donanimhaber.com/cache-v2?path=http://store.donanimhaber.com/1c/ac/8f/1cac8f33fbcaaedc54f81d2092acc627.png&t=0&width=480&text=1


Ip Whois

- Ip Adreslerinin Bölge, Şehir, Koordinat Bilgilerini Sorgulayabiliyoruz.

https://forum.donanimhaber.com/cache-v2?path=http://store.donanimhaber.com/a6/41/de/a641de5436c6ac264fa910c4a46bf80c.png&t=0&width=480&text=1



Şifreleme Araçları

- Bir değerin MD5, SHA1, SHA-256 hashlerini bu bölümden oluşturabilirsiniz.

https://forum.donanimhaber.com/cache-v2?path=http://store.donanimhaber.com/9f/b4/f8/9fb4f82f688d801c06aaa0c587b34932.png&t=0&width=480&text=1

Notlar bölümü.

- Bu bölümde önemli notları kaydedebilir, güncelleyebilirsiniz.

https://forum.donanimhaber.com/cache-v2?path=http://store.donanimhaber.com/2c/fb/33/2cfb336a01e9394daf5fc9ecc16b5244.png&t=0&width=480&text=1


Notları güncelleme ekranı

https://forum.donanimhaber.com/cache-v2?path=http://store.donanimhaber.com/d8/3f/7f/d83f7f47fa8643d3ad807e9b61640c71.png&t=0&width=480&text=1
O
geçen yıl
SQL Server'da STUFF Fonksiyonuyla Birden Fazla Kaydı Tek Satırda Gösterme İşlemi
Veritabanı işlemleri yaparken bir kayda karşılık gelen birkaç farklı kaydı tek satırda göstermemiz gereken durumlar için kısa bir makale ile sizlerleyiz.

Elimizde şehirlerin ve ilçelerin olduğu iki tane tablo olduğunu düşünelim. Şehirler tablosunu inşaa edelim.

tblSehirler Tablosu

CREATE TABLE tblSehirler
(
sehir_ID INT PRIMARY KEY NOT NULL IDENTITY(1,1) ,
sehir_adi VARCHAR(255)
)

INSERT INTO tblSehirler (sehir_adi) VALUES ('Adana')
INSERT INTO tblSehirler (sehir_adi) VALUES ('Adıyaman')
INSERT INTO tblSehirler (sehir_adi) VALUES ('Afyon')
INSERT INTO tblSehirler (sehir_adi) VALUES ('Ağrı')
INSERT INTO tblSehirler (sehir_adi) VALUES ('Amasya')
INSERT INTO tblSehirler (sehir_adi) VALUES ('Ankara')


Oluşan şehirler tablosunun görselini paylaşalım.

Şehirler Tablosu



İlçeleri de oluşturalım.

tblIlceler Tablosu
CREATE TABLE tblIlceler
(
ilce_ID INT PRIMARY KEY NOT NULL IDENTITY(1,1) ,
sehir_ID INT,
ilce_adi VARCHAR(255)
)

INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (1, 'Seyhan')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (1, 'Ceyhan')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (1, 'Yüreğir')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (1, 'Sarıçam')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (1, 'Çukurova')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (2, 'Kahta')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (2, 'Gölbaşı')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (2, 'Gerger')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (3, 'Başmakçı')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (3, 'Bayat')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (3, 'Bolvadin')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (3, 'Dinar')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (4, 'Diyadin')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (4, 'Doğubayazıt')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (4, 'Patnos')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (5, 'Göynücek')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (5, 'Gümüşhacıköy')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (5, 'Hamamözü')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (6, 'Akyurt')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (6, 'Altındağ')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (6, 'Balâ')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (6, 'Keçiören')
INSERT INTO tblIlceler (sehir_ID, ilce_adi) VALUES (6, 'Çankaya')


Oluşan ilçeler tablosunun görselini paylaşalım.

İlçeler Tablosu



Şimdi ise her şehire karşılık gelen tüm ilçeleri her şehirden tek kayıt gelecek şekilde yazalım.

STUFF Sorgusu
SELECT A.sehir_ID, A.sehir_adi AS Sehir,
STUFF
(
(
SELECT
', ' + ilce_adi
FROM tblIlceler AS B
WHERE A.sehir_ID = B.sehir_ID
FOR XML PATH('')
), 1, 1, ''
) AS Ilceler
FROM tblSehirler AS A


Kodlarımızın sonucuna ait görseli paylaşalım.

Sonuç



Bol sorgulu günler.

Kaynak: https://www.ontedi.com/sql/sql-serverda-stuff-fonksiyonuyla-birden-fazla-kaydi-tek-satirda-gosterme-islemi
O
geçen yıl
SQL Server'da Yıl, Ay ve Gün Farkı Gösterimi
Uygulamalarınızda iki tarih arasındaki değerleri A Yıl, B Ay, C Gün şeklinde gösterme gereği duyarız. Yaptığımız küçük bir uygulama ile bu gösterimi sağlamış olacağız.

Veritabanı işlemleri yaparken tarih verilerinin daha güzel bir gösterimi için bazı method yada fonksiyonlara ihtiyaç duyarız. Kısaca o fonksiyonu sizlere aktaralım. Fonksiyonumuz iki tane tarih verisi istemektedir. Verilen iki tarihi işledikten sonra gösterim olarak örneğin '2 Yıl 7 Ay 16 Gün' olarak bize geridönüş sağlamaktadır.

Tarih Fonksiyonu
CREATE FUNCTION dbo.fnYilAyGun
(
@BaslangicTarihi DATETIME,
@BitisTarihi DATETIME
)
RETURNS varchar(100)
AS
BEGIN
DECLARE @Yil INT
DECLARE @Ay INT
DECLARE @Gun INT
DECLARE @Sonuc VARCHAR(100)
SET @Yil = DATEDIFF(yy, @BaslangicTarihi, @BitisTarihi)
SET @Ay = DATEDIFF(mm, @BaslangicTarihi, @BitisTarihi) - (@Yil * 12)
SET @Gun = DATEDIFF(dd, @BaslangicTarihi, @BitisTarihi) - ((@Yil * 365) + (@Ay * 30))
IF (@Yil < 1)
BEGIN
SET @Yil = ''
END
IF (@Ay < 1)
BEGIN
SET @Ay = ''
END
IF (@Gun < 1)
BEGIN
SET @Gun = ''
END
SET @Sonuc = (' ' + CAST(@Yil AS VARCHAR(4)) + ' Yıl ' + CAST(@Ay AS VARCHAR(2)) + ' Ay ' + CAST(@Gun AS VARCHAR(2)) + ' Gün')
SET @Sonuc = REPLACE(@Sonuc, ' 0 Yıl', '')
SET @Sonuc = REPLACE(@Sonuc, ' 0 Ay', '')
SET @Sonuc = REPLACE(@Sonuc, ' 0 Gün', '')
RETURN @Sonuc
END


Fonksiyonumuzu yazdık, şimdi ise bunu SQL Server üzerinde oluştuğunu teyit edelim.
Oluşan Fonksiyon


Şimdi ise örnekler konuyu pekiştirmeye çalışalım.

Örnek 1
SELECT dbo.fnYilAyGun('2012-01-02', '2020-03-10') AS TarihFarki


Örnek 1 Sonuç


Örnek 2
SELECT dbo.fnYilAyGun('2018-04-20', '2018-05-28') AS TarihFarki


Örnek 2 Sonuç


Kaynak: https://www.ontedi.com/sql/sql-serverda-yil-ay-ve-gun-farki-gosterimi
O
geçen yıl
JavaScript ile Vize Final Not Ortalaması Hesaplama
Son dönemlerde bazı arkadaşların bana bu konuda talepleri geliyordu. Gelen bu taleplere karşı kayıtsız kalmayıp JavaScript ile not ortalaması hesaplayan küçük bir uygulamayı sizlerle paylaşmak istedim.

Üniversite yıllarında çokca bu durumla karşı karşıya kalmışızdır. Şimdi de siteden mesaj gönderenlerin talebine karşılık bu makaleyi herkesin yararlanacağı şekilde açık edeyim. Kısaca bir özet geçtikten sonra malzemeleri hazırlayıp uygulamamızı yayına alalım.
Üniversite zamanlarımdan hatırladığım kadarıyla vize puanının %40'ı, final puanının %60'ı alınıp ortalama puan hesaplaması geçerli oluyordu.
Şimdi bu durumu biraz daha ucu açık olacak şekilde yapalım. Yani vize ile final yüzdelerini kullanıcının gireceği şekilde yapalım.
Öncelikle arayüz giydirmesi için HTML iskeletini yapalım.

HTML Betikleri
<div class="kapsul">
<div class="satir">
<div class="sutun">
<div class="input-kapsul">
<label class="baslik">Vize Notu</label>
<input type="text" class="input vize-notu" placeholder="Lütfen vize notunu giriniz" />
</div>
</div>
<div class="sutun">
<div class="input-kapsul">
<label class="baslik">Vize Yüzdesi</label>
<input type="text" class="input vize-yuzde" placeholder="Lütfen vize yüzdesi giriniz" />
</div>
</div>
</div>
<div class="satir">
<div class="sutun">
<div class="input-kapsul">
<label class="baslik">Final Notu</label>
<input type="text" class="input final-notu" placeholder="Lütfen final notunu giriniz" />
</div>
</div>
<div class="sutun">
<div class="input-kapsul">
<label class="baslik">Final Yüzdesi</label>
<input type="text" class="input final-yuzde" placeholder="Lütfen final yüzdesi giriniz" />
</div>
</div>
</div>
<div class="sonuc">

</div>
<div class="satir">
<div class="buton-kapsul">
<button class="buton hesapla">Hesapla</button>
</div>
</div>
</div>


HTML iskeleti üzerine giydirme yapmak için CSS kısmını hazırlayalım.
CSS Betikleri
*{margin:0;padding:0;font-family:inherit;}
body{font-family:'Arial',sans-serif;background-color:#f5f5f5;font-size:12px;line-height:20px;}
.kapsul{width:600px;position:relative;background:#fff;margin:10px auto;padding:10px;}
.ortalayici{width:600px;min-height:20px;margin:0px auto;text-align:center;}
.ortalayici h1{margin:0px;}
.ortalayici a{color:#BC5393;text-decoration:none;}
.satir{display:flex;flex:2;margin-bottom:10px;}
.satir .sutun{display:flex;flex:1;}
.input-kapsul{font-size:13px;height:auto;outline:none;box-shadow:inset 1px 2px 0 rgba(0, 0, 0, 0.06);border:1px solid #D9D9D9;background-color:#fff;width:calc(100% - 12px);margin:0px 5px !important;}
.input-kapsul .input{display:block;width:100%;height:34px;border:none;font-size:14px;line-height:1.42857143;color:#555;background-color:transparent;outline:none;padding:5px;}
.input-kapsul .baslik{display:block;font-weight:bold;color:#969696;font-size:10px;cursor:text;transition:all .25s ease;padding:5px 5px 0px 5px;}
.buton-kapsul{padding:0px 5px;}
.buton-kapsul .buton{background-color:#345370;padding:10px 20px;color:#fff;border:none;opacity:0.9;border-radius:4px;cursor:pointer;}
.buton-kapsul .buton:hover{opacity:1;}
.sonuc{padding:5px 5px 5px 40px;margin:5px;position:relative;}
.sonuc:before{position:absolute;top:50%;left:5px;color:#fff;font-size:20px;padding:5px;border-radius:50%;width:20px;height:20px;text-align:center;margin-top:-15px;}
.sonuc.basarisiz{border:1px solid #ff0000;}
.sonuc.basarisiz:before{content:'!';background:#ff0000;}
.sonuc.basarili{border:1px solid #008000;}
.sonuc.basarili:before{content:'✓';background:#008000;}


Oluşan Arayüz


Oluşan Arayüz


İskelet ve giydirme bitti. Şimdi buna aksiyon ekleme zamanı. Kısaca aksiyon şu şekilde ilerleyecek:
- Vize notunu girecek
- Vize yüzdesini girecek
- Final notunu girecek
- Final yüzdesini girecek
- Uygun koşullar sağlandığının kontrolü yapılacak (Girdiği herhangi bir notun 0'dan küçük ve 100'den büyük olmamasını sağlamak vb.. gibi)

JavaScript Betikleri
var divSonuc = document.querySelector('.sonuc');
var btnHesapla = document.querySelector('.hesapla');
btnHesapla.addEventListener("click", function(event) {
let flVizeNotu = 0;
let strVizeNotu = document.querySelector('.vize-notu').value;

let flVizeYuzde = 0;
let strVizeYuzde = document.querySelector('.vize-yuzde').value;

let flFinalNotu = 0;
let strFinalNotu = document.querySelector('.final-notu').value;

let flFinalYuzde = 0;
let strFinalYuzde = document.querySelector('.final-yuzde').value;

let strUyari = "";
if (strVizeNotu == '' || isNaN(strVizeNotu))
strUyari += "- Lütfen vize notu giriniz.<br />";
else
flVizeNotu = parseFloat(strVizeNotu);

if (strVizeYuzde == '' || isNaN(strVizeYuzde))
strUyari += "- Lütfen vize yüzdesi giriniz.<br />";
else
flVizeYuzde = parseFloat(strVizeYuzde);

if (strFinalNotu == '' || isNaN(strFinalNotu))
strUyari += "- Lütfen final notu giriniz.<br />";
else
flFinalNotu = parseFloat(strFinalNotu);

if (strFinalYuzde == '' || isNaN(strFinalYuzde))
strUyari += "- Lütfen final yüzdesi giriniz.<br />";
else
flFinalYuzde = parseFloat(strFinalYuzde);

if (flVizeNotu < 0 || flVizeNotu > 100)
strUyari += "- Vize notu 0-100 arasında olmalıdır.<br />";

if (flVizeYuzde < 0 || flVizeYuzde > 100)
strUyari += "- Vize yüzdesi 0-100 arasında olmalıdır.<br />";

if (flFinalNotu < 0 || flFinalNotu > 100)
strUyari += "- Final notu 0-100 arasında olmalıdır.<br />";

if (flFinalYuzde < 0 || flFinalYuzde > 100)
strUyari += "- Final yüzdesi 0-100 arasında olmalıdır.<br />";

if ((flVizeYuzde + flFinalYuzde) != 100)
strUyari += "- Vize ve Final yüzdeleri toplamı 100 olmalıdır.<br />";

divSonuc.classList.remove("basarili");
divSonuc.classList.remove("basarisiz");
if (strUyari != "")
{
divSonuc.classList.add("basarisiz");
divSonuc.innerHTML = strUyari;
}
else
{
let flVizeSonuc = ((flVizeNotu * flVizeYuzde) / 100);
let flFinalSonuc = ((flFinalNotu * flFinalYuzde) / 100);
let flSonuc = flVizeSonuc + flFinalSonuc;
divSonuc.classList.add("basarili");
divSonuc.textContent = "Sınav ortalamanız: " + flSonuc;
}
});


Ortalamayı geçmeniz dileğiyle :)

Kaynak: https://www.ontedi.com/javascript/javascript-ile-vize-final-not-ortalamasi-hesaplama
O
2 yıl
JavaScript ile İl, İlçe, Mahalle Örneği ve JSON Kullanımı
Bu makalemizde birbirine göre değişen select kutuları ve her değişim olayında uygun koşula göre kayıtların ilgili selecte doldurulması işlenecektir.

Makalemizi "İl, İlçe ve Mahalle" seçimlerine göre yapacağımızı belirtmekte fayda var. Ayrıca veritabanı kullanmadan direkt olarak bir JSON dosyasından ilgili kayıtları kullanacağız.

Öncelik olarak sehirler.json adlı dosyamızı oluşturup birkaç tane şehir girelim.
sehirler.json
[
{"sehir_ID":"1","sehir_adi":"Adana"},
{"sehir_ID":"2","sehir_adi":"Adıyaman"},
{"sehir_ID":"3","sehir_adi":"Afyon"},
{"sehir_ID":"4","sehir_adi":"Ağrı"}
]


Bu şehirlere karşılık uygun ilçeler oluşturalım.
ilceler.json
[
{"ilce_ID": "1", "sehir_ID":"1","ilce_adi":"Yüreğir"},
{"ilce_ID": "2", "sehir_ID":"1","ilce_adi":"Seyhan"},
{"ilce_ID": "3", "sehir_ID":"1","ilce_adi":"Ceyhan"},
{"ilce_ID": "4", "sehir_ID":"1","ilce_adi":"Çukurova"},
{"ilce_ID": "5", "sehir_ID":"1","ilce_adi":"Sarıçam"},
{"ilce_ID": "6", "sehir_ID":"1","ilce_adi":"Kozan"},
{"ilce_ID": "7", "sehir_ID":"1","ilce_adi":"Feke"},
{"ilce_ID": "8", "sehir_ID":"2","ilce_adi":"Besni"},
{"ilce_ID": "9", "sehir_ID":"2","ilce_adi":"Çelikhan"},
{"ilce_ID": "10", "sehir_ID":"2","ilce_adi":"Gerger"},
{"ilce_ID": "11", "sehir_ID":"2","ilce_adi":"Gölbaşı"},
{"ilce_ID": "12", "sehir_ID":"2","ilce_adi":"Kâhta"},
{"ilce_ID": "13", "sehir_ID":"2","ilce_adi":"Samsat"},
{"ilce_ID": "14", "sehir_ID":"2","ilce_adi":"Sincik"},
{"ilce_ID": "15", "sehir_ID":"3","ilce_adi":"Başmakçı"},
{"ilce_ID": "16", "sehir_ID":"3","ilce_adi":"Bayat"},
{"ilce_ID": "17", "sehir_ID":"3","ilce_adi":"Bolvadin"},
{"ilce_ID": "18", "sehir_ID":"3","ilce_adi":"Çay"},
{"ilce_ID": "19", "sehir_ID":"3","ilce_adi":"Çobanlar"},
{"ilce_ID": "20", "sehir_ID":"3","ilce_adi":"Dazkırı"},
{"ilce_ID": "21", "sehir_ID":"4","ilce_adi":"Diyadin"},
{"ilce_ID": "22", "sehir_ID":"4","ilce_adi":"Doğubayazıt"},
{"ilce_ID": "23", "sehir_ID":"4","ilce_adi":"Eleşkirt"},
{"ilce_ID": "24", "sehir_ID":"4","ilce_adi":"Hamur"},
{"ilce_ID": "25", "sehir_ID":"4","ilce_adi":"Patnos"},
{"ilce_ID": "26", "sehir_ID":"4","ilce_adi":"Taşlıçay"},
{"ilce_ID": "27", "sehir_ID":"4","ilce_adi":"Tutak"}
]


İlçeler de oluştuğuna göre bu ilçelere ait biraz mahalle ekleyelim.
mahalleler.json
[
{"mahalle_ID": "1", "sehir_ID":"1", "ilce_ID": "2", "mahalle_adi":"2000 Evler Mahallesi"},
{"mahalle_ID": "2", "sehir_ID":"1", "ilce_ID": "2", "mahalle_adi":"Ahmet Remzi Yüreğir Mahallesi"},
{"mahalle_ID": "3", "sehir_ID":"1", "ilce_ID": "2", "mahalle_adi":"Akkapı Mahallesi"},
{"mahalle_ID": "4", "sehir_ID":"1", "ilce_ID": "2", "mahalle_adi":"Alidede Mahallesi"},
{"mahalle_ID": "5", "sehir_ID":"1", "ilce_ID": "2", "mahalle_adi":"Bahçelievler Mahallesi"},
{"mahalle_ID": "6", "sehir_ID":"1", "ilce_ID": "6", "mahalle_adi":"Gökgöz Mahallesi"},
{"mahalle_ID": "7", "sehir_ID":"1", "ilce_ID": "6", "mahalle_adi":"Görbeyaz Mahallesi"},
{"mahalle_ID": "8", "sehir_ID":"1", "ilce_ID": "6", "mahalle_adi":"Güneri Mahallesi"},
{"mahalle_ID": "9", "sehir_ID":"1", "ilce_ID": "6", "mahalle_adi":"Hacıbeyli Mahallesi"},
{"mahalle_ID": "10", "sehir_ID":"1", "ilce_ID": "6", "mahalle_adi":"Hacımirzalı Mahallesi"},
{"mahalle_ID": "11", "sehir_ID":"1", "ilce_ID": "6", "mahalle_adi":"Hacıuşağı Mahallesi"},
{"mahalle_ID": "12", "sehir_ID":"1", "ilce_ID": "6", "mahalle_adi":"Hamam Mahallesi"},
{"mahalle_ID": "13", "sehir_ID":"2", "ilce_ID": "11", "mahalle_adi":"Kurugeçit Mahallesi"},
{"mahalle_ID": "14", "sehir_ID":"2", "ilce_ID": "11", "mahalle_adi":"Yenikent Mahallesi"},
{"mahalle_ID": "15", "sehir_ID":"2", "ilce_ID": "11", "mahalle_adi":"Asfalt Mahallesi"},
{"mahalle_ID": "16", "sehir_ID":"2", "ilce_ID": "11", "mahalle_adi":"Yeni Mahallesi"},
{"mahalle_ID": "17", "sehir_ID":"2", "ilce_ID": "11", "mahalle_adi":"Kalemkas Mahallesi"},
{"mahalle_ID": "18", "sehir_ID":"1", "ilce_ID": "1", "mahalle_adi":"19 Mayıs Mahallesi"},
{"mahalle_ID": "19", "sehir_ID":"1", "ilce_ID": "1", "mahalle_adi":"Çamlıbel Mahallesi"},
{"mahalle_ID": "20", "sehir_ID":"1", "ilce_ID": "1", "mahalle_adi":"Dadaloğlu Mahallesi"},
{"mahalle_ID": "21", "sehir_ID":"1", "ilce_ID": "1", "mahalle_adi":"Dervişler Mahallesi"},
{"mahalle_ID": "22", "sehir_ID":"1", "ilce_ID": "3", "mahalle_adi":"Kelemeti Mahallesi"},
{"mahalle_ID": "23", "sehir_ID":"1", "ilce_ID": "3", "mahalle_adi":"Kösreli Mahallesi"},
{"mahalle_ID": "24", "sehir_ID":"2", "ilce_ID": "8", "mahalle_adi":"Tetirli Mahallesi"},
{"mahalle_ID": "25", "sehir_ID":"2", "ilce_ID": "8", "mahalle_adi":"Yukarı Sarhan Mahallesi"}
]


Yeterince veri oluştuğuna göre bunlara göre HTML betiklerimizi hazırlayalım.
HTML Betikleri

<div class="kapsul">
<div class="satir">
<p>Şehir:</p> <select id="select-sehirler"></select>
</div>
<div class="satir">
<p>İlçe:</p> <select id="select-ilceler"></select>
</div>
<div class="satir">
<p>Mahalle:</p> <select id="select-mahalleler"></select>
</div>
</div>


Oluşturduğumuz bu HTML betiklerinin nasıl göründüğüne bakalım.


Oluşan çıktı sonucunda select elementlerinin değerinin değişiminde (change) uygulanacak JavaScript (jQuery) betiklerini hazırlayalım.

JavaScript (jQuery) Betikleri
        let objSehirler = $('#select-sehirler');
objSehirler.empty();
objSehirler.append('<option selected="true" disabled>Seçiniz</option>');
objSehirler.prop('selectedIndex', 0);

const sehirlerjsonurl = '/sehirler.json';
$.getJSON(sehirlerjsonurl, function (data) {
$.each(data, function (a, b) {
objSehirler.append($('<option></option>').attr('value', b.sehir_ID).text(b.sehir_adi));
});
});

let objIlceler = $('#select-ilceler');
objIlceler.empty();
objIlceler.append('<option selected="true" disabled>Seçiniz</option>');
objIlceler.prop('selectedIndex', 0);
$(document).ready(function(){
$("#select-sehirler").on("change", function(){
let strSehir_ID = $(this).val();
fnIlceler_Doldur(strSehir_ID);
fnMahalleler_Doldur(null);
});
});
fnIlceler_Doldur = (parSehir_ID) => {
objIlceler.empty();
objIlceler.append('<option selected="true" disabled>Seçiniz</option>');
const ilcelerjsonurl = '/ilceler.json';
$.getJSON(ilcelerjsonurl, function (data) {
$.each(data, function (a, b) {
let strSehir_ID = b.sehir_ID;
if (parSehir_ID === strSehir_ID)
objIlceler.append($('<option></option>').attr('value', b.ilce_ID).text(b.ilce_adi));
});
});
}
let objMahalleler = $('#select-mahalleler');
objMahalleler.empty();
objMahalleler.append('<option selected="true" disabled>Seçiniz</option>');
objMahalleler.prop('selectedIndex', 0);
$(document).ready(function(){
$("#select-ilceler").on("change", function(){
let strIlce_ID = $(this).val();
fnMahalleler_Doldur(strIlce_ID);
});
});
fnMahalleler_Doldur = (parIlce_ID) => {
objMahalleler.empty();
objMahalleler.append('<option selected="true" disabled>Seçiniz</option>');
const mahallelerjsonurl = '/mahalleler.json';
$.getJSON(mahallelerjsonurl, function (data) {
$.each(data, function (a, b) {
let strIlce_ID = b.ilce_ID;
if (parIlce_ID === strIlce_ID)
objMahalleler.append($('<option></option>').attr('value', b.mahalle_ID).text(b.mahalle_adi));
});
});
}

Çalışmanız esnasında JSON dosyaları çağırılırken Access to XMLHttpRequest at from origin 'null' has been blocked by CORS policy hatası karşınıza çıkabilir. O nedenle çalışmayı bir sunucuda denemeniz daha sağlıklı sonuçlar elde etmenizi sağlar.


Yine de kendi bilgisayarınızda test etmek istiyorsanız bilgisayarınıza Visual Studio Code yükleyin. Ardından eklentiler kısmından Live Server eklentisini kurunuz. Daha sonra çalışma dosyalarınızı Visual Studio Code uygulamasıyla "Open Folder" diyerek bir proje olarak açın. Sonrasında ise html dosyamıza sağ tıklayıp "Open with Live Server" diyerek onu lokal olarak çalıştırabilirsiniz.







Bol uygulamalı günler.

Kaynak: https://www.ontedi.com/javascript/javascript-ile-il-ilce-mahalle-ornegi-ve-json-kullanimi
O
2 yıl
Instagram Video İndirme Aparatı, Eklentisiz, Yüklemesiz
Açıkcası bu işin Android uygulamasını yapmıştım çok fazla uzun sürmeden askıya alındı. Ben de bari biraz farklılık olsun diye web uyarlaması yaptım. Kullanıcı bilgilerinizi istemez. Gizli hesaplarda video bilgilerini getirmiyor bilginiz olsun.

https://www.ontedi.com/instagram-video-indir

Belirli sınırlamalar mevcuttur. Gelen taleplere göre sınır arttırılabilir. Gereksiz ise de konu silinebilir.
O
2 yıl
SQL Server'da While Döngüsü Örnekleri
Programlama dillerinin vazgeçilmezi olan döngüler konusunu bu sefer SQL Server için örneklerle işleyeceğiz.

Bilindiği üzere programlama dillerinde belirli aralıktaki belirli düzene sahip dizi tipindeki değerleri yazdırmak için çeşitli döngüler mevcuttur. Bu döngülerden birisi de While döngüsüdür. Biraz daha açıklama yapmak gerekirse; "Belirli bir koşul sağlanıncaya kadar ilerle, ilerlerken şunları yap. Koşul sağlanınca olayı bitir."

Şimdi ise kullanım şekline bakalım
WHILE (Gidilecek Son Sınır)
BEGIN
// Burada uygun koşulları sağlayan değerlerle işlemler yapmak;
END

Örnek 1

DECLARE @SAYAC INT = 0
WHILE @SAYAC < 20
BEGIN
PRINT @SAYAC
SET @SAYAC = @SAYAC + 1
END

Örnek 1 Çıktısı



Örnek 2

DECLARE @SAYAC INT = 500
WHILE @SAYAC > 40
BEGIN
PRINT @SAYAC
SET @SAYAC = @SAYAC - 60
END

Örnek 2 Çıktısı



Örnek 3

DECLARE @Yazi VARCHAR(50) = 'BU MAKALE GAYET GÜZEL'
DECLARE @KarakterSayisi INT = LEN(@Yazi)
DECLARE @SAYAC INT = 0
WHILE @SAYAC <= @KarakterSayisi
BEGIN
PRINT SUBSTRING(@Yazi, @SAYAC, 1)
SET @SAYAC = @SAYAC + 1
END

Örnek 3 Çıktısı


Bol döngülü seyirler.
Kaynak: https://www.ontedi.com/sql/sql-serverda-while-dongusu-ornekleri
O
2 yıl
Zikirmatik Uygulaması Yayında
Özellikler:

- İstediğiniz kadar zikir oluşturabilirsiniz.
- Başlangıç ve bitiş tarihi ekleyebilir.
- Toplam kaç tane zikir çekilecekse belirtebilir, bittiğinde ise sizi uyarır.
- Zikir sayısı belirtmezseniz sonsuz sayıda zikir çekebilirsiniz.
- Zikirlerinize açıklama ekleyebilirsiniz.
- Zikirde fazladan okuduğunuz dua için geri al tuşuna basarak istediğiniz zikiri azaltabilirsiniz.
- En büyük özelliğinden biri ise okuduğunuz zikirleri hangi gün kaç tane okumuşum şeklinde istatiksel olarak görebilmektesiniz.
- Zikirde titreşim özelliğini açıp kapatabilirsiniz.
- Zikirde ses özelliğini açıp kapatabilirsiniz.

Uygulamayı indirmek için tıklayınız




O
11 yıl
Asp - Flash Etiket Bulutu
Etiket Bulutu

<%
Set RS = DBBaglanti.ExeCute("Select * FROM tbletiketler ORDER BY goruntulenme DESC" )
if Not RS.Eof Then
%>
<embed type="application/x-shockwave-flash" src="tagcloud.swf" id="tagcloud" name="tagcloud" bgcolor="#EAE680" quality="high"
flashvars="tcolor=0x000000&mode=tags&distr=true&tspeed=150&tagcloud=<tags>
<%
Do While Not RS.Eof
%>
<a href='icerik.asp?icerik_ID=<%=RS("icerik_ID" )%>' style='11'><%=RS("baslik" )%></a>
<%
RS.MoveNext
Loop
%>
</tags>" allowscriptaccess="always" width="200" height="180">
<%
end if
RS.Close
Set RS = Nothing
%>

Örnek Çalışma: http://www.birturku.com/

Bu adresten swf dosyasını indirin: http://www.roytanck.com/2008/03/15/wp-cumulus-released/
DH Mobil uygulaması ile devam edin.
Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin.
Gizle ve güncelleme çıkana kadar tekrar gösterme.