Korkmayın

Döküman başlığı anlaşılmaz olsa da şimdi olayı kavrayacaksınız :-) Html elemanlarımızı css ile yerleştirirken css'de nesnelerin etiket adları, kimlikleri (id) ve sınıflarına (class) göre seçici cümleler oluştururuz. Mesela tüm bağlantılar için
a {

}
kullanırız. Ya da tüm "ipucu" sınıfına ait elemanları seçmek için
.ipucu
tanımı kullanırız. Hatta tüm ipucu sınıfındaki sadece bağlantıları seçmek için
a.ipucu
veya icerik kimliği içindeki tüm ipucu sınıflı span'ları seçmek istersek de
#icerik span.ipucu
adreslemesini kullanırız. Bu adresleme aslında nesnelere erişimimizi oldukça kolaylaştırır. Gerek tek nesneye ulaşırken gerek de birden fazla nesneye ulaşırken css adreslemeleri bu konuda oldukça pratiktir.

JavaScript ile ne ilgisi var peki?

DOM'da seçici fonksiyonlar vardır bilirsiniz. getElementById(), getElementsByClass() gibi. Fakat son verdiğim örnekteki nesnelere ulaşmak için birkaç döngü kurmanız gerekir, daha karışık nesene seçimlerinde de bizi uğraştırabilir. Mootools'u yine seveceksiniz, çünkü mootools'da seçici fonksiyonlar var ve bunlardan bir tanesi (muhtemelen en çok kullanılan) css adreslemelerine göre elemanlar seçiyor.


$ Fonksiyonu elemanları kimliklerine göre seçer. getElementById(); ile aynı işi yapıyor aslında
eleman = document.getElementById('anasayfa_butonu');
// ile aşağıdaki tanım aynı işi görür
eleman = $('anasayfa_butonu');
$$ Fonksiyonu az önce yazdığımız css adreslemesinde bulduğu elemanları nesne dizesi olarak verir.

Örneğin ipucu sınıfındaki tüm linkleri seçtirelim
$$('a.ipucu')
icerik kimliği içindeki ipucu sınıflı tüm linker :
$$('#ipucu a.ipucu')
ya da birden fazla sınıf adreslemesine ait elemanların hepsi :
$$('a.ipucu, a.eposta, span.bilgi')
Şimdilik pek oturmadı farkındayım ama birkaç örnek yapalım eminim daha iyi anlayacaksınız :

Mesela elimizde 4-5 linkten oluşan bir menü olsun. Aynı zamanda sayfamızın içeriğinde de linkler, span'lar bold metinler vs bir sürü elemanımız var. Sadece css ile yerleştirilip düzenlenmiş durumda. Örnek HTML şöyle :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    <title>Sayfa Basligi</title>
  </head>
<body>
  
  <h1>Canım Sitem</h1>
  
  <div id="menu">
    <a href="anasayfa.html" title="Anasayfa'ya gider">Anasayfa</a> |
    <a href="dokumanlar.html" title="Yazdığım dökümanlar">Dökümanlar</a> |
    <a href="fotolar.html" title="Fotoğraflarım">Fotoğraflar</a> |
    <a href="hakkinda.html" title="Mehmet Fatih YILDIZ hakkında">Hakkımda</a> |
    <a href="iletisim.html" title="Benimle İletişin">İletişim</a>
  </div>
  
  <div id="icerik">
    <!--
      HTML SAYFA ICERIGI BURADA
    --> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  </div>
  
  <div id="linklerim">
    <h3>Linklerim</h3>
    <a href="http://www.mfyz.com">MFYZ.Com</a> <br>
    <a href="http://www.google.com">google</a> <br>
    <!--
      YUZLERCE LINK OLDUGUNU DUSUNELIM
    -->
    <a href="http://www.yahoo.com">yahoo</a>
  </div>
  
</body>
</html>
Gördüğünüz gibi basit bir html dosyası. Şimdi menudeki tüm linkleri seçip bir güzellik yapalım :-)
$$('#menu a').each(function(link){
  alert( link.getProperty('title') );
});
$$ ile aldığımız nesneleri each ile dönüyoruz. içerideki fonksiyona verdiğimiz link parametresi dizi dönerken elemanın nesnesini ifade ediyor. Böylece o elemanlar üzerinde istediğimizi yapabiliyoruz. İçeride basitçe linklerdeki title argümanına atadığım açıklama metinlerini alert ettirdim. Ama bu sayfa yüklenirken yapılır be birşey anlamazsınız. Daha güzel bir örnek vermek gerekirse :
$$('#menu a').each(function(link){
  link.addEvents({
    'mouseover': function(){
      window.status = link.getProperty('title');
    },
    'mouseout': function(){
      window.status = '';
    }
  });
});
Linklerin üzerine geldiğinizde sayfa statusbar'ında linklerin url'leri yerine açıklamaları çıkar :-) Bu kısımlar dökümanla ilgili değil, onun için geçiyorum.

Mesela kullanılabilir bir örnek için de sayfada içerikten sonraki linkler kısmında birşeyler yapalım. O linkler site dışı linkler ve target'ları yok gördüğünüz gibi. Yani linkler doğrudan sayfa üzerinde açılacaklar. Bu linkleri yeni pencerede açtıralım.
$$('#linklerim a').each(function(a){
  a.setProperty('target', '_blank');
});
kodu işimizi görecektir. Bu kod işletildikten sonra o linkler yeni pencerede açılacaktır.
Bu örnek css seçicileri anlamanızı sağlamıştır umarım.


CSS seçiciler ile tek eleman seçtirmek


CSS seçiciler ile tek eleman seçtirmek istediğinizde, mesela bir sürü eleman içinden css adresiyle bir eleman seçtiriyorsunuz :
#linklerim a.google
az önceki örnekte alttaki linklerin etiketinde hepsine sınıf eklediğimizi düşünelim. Google linkine de google sınıfı atadık. Fakat bu sınıfa tek eleman var. Sadece o link var. Ancak CSS seçiciler her zaman dizi döner.
$$('#linklerim a.google')
olarak seçmek istediğinizde tek elemanlı bir dizi dönecektir.
$$('#linklerim a.google')[0]
ile kolayca elemanınıza ulaşabilir, üzerinde işlemler yapabilirsiniz.


Hazırlayan : Mehmet Fatih YILDIZ

Giriş

PHP'de MySQL'i nasıl kullanacağımızı daha önce görmüştük. Bu dökümanda mysql'de verileri nasıl çekip, listeleyip bu verileri iyi biçimde süzgeçleme, üzerinde arama yapma ve oluşan çıktıları nasıl işleyeceğimizden bahsedeceğim. Bu dökümanda da diğer dökümanda kullandığım örnek tabloyu kullanacağım. Hatırlatmak gerekirse "tablo" adında ve kullanici, kayit_tarihi, eposta, ziyaret_sayisi alanlarından oluşuyordu.

Öncelikle mysql bağlantımızı oluşturup tablomuzu seçelim. Bildiğimizi varsayıp geçiyorum bu kısmı..
Veri seçmek için genel bir kalıp vardır. SELECT <alan adı belirteci> FROM `tablo adı` Bu sorguda ilk kısımda seçimden sonra dönecek olan alan adlarını belirtmemiz gerekir. Alan adlarını teker teker de belirtebilir, * ifadesi ile hepsini de ifade edebiliriz.
Daha önce testlerini de yaptığım bir sonuç vardır ki genellikle söylenen birşeydir, MySQL'de ihtiyacımız olan şeyleri kullanarak daha hızlı işletilen sorgular yazabiliriz. Mantıksal olarak da doğru birşeydir. Diyelim ki 25 alanlık ve bunlardan 10 tanesi TEXT türünde olan, üzerinde 100.000 kayıt bulunan bir tablonuz var veya yazdığınız sistem ilerde bu derece büyüyebilecek bir potansiyele sahip, böyle bir durumda sadece 1-2 alana ihtiyaç varken * ile tüm alanları seçmeye çalışmak arasında gözle görülür hız farkı yaşanacaktır. Tüm alanları seçerek bütün bilgilerin tekrar okunmasını istemiş oluruz, örnek verdiğim tablo gibi orta büyüklükte tablolardaki işlemlerde bile performans düşüşü kaçınılmazdır. Onun için sadece kullanacağımız alanları belirtmekte fayda var.
Birinci kısımdan sonra FROM ile veri çekilecek tabloyu belirtiyoruz. Bu kullanımda bütün satırlar seçilecek ve dönülecektir. WHERE kalıbını kullanarak istediğimiz, koşullarımıza uyan kayıtları seçebiliriz.

LIMIT X,Y kalıbı ile sonuçları parçalayabiliriz. LIMIT kalıbı sorgularda en sonda kullanılır. Bu kalıpta önce (X ile ifade edilen) hangi kayıttan başlanacağı, virgül ve sonra da (Y ile ifade edilen) kaç kayıdın sorgudan etkileneceğini belirtiriz. İşlem olarak her işlemde kullanılabilir ancak genellikle kayıt listelerken kullanırız. Sonuç olarak oluşan örnek bir listeleme sorgusu şöyle olabilir :
SELECT kullanici, kayit_tarihi, ziyaret_sayisi FROM `tablo` WHERE ziyaret_sayisi > 0 LIMIT 0,5
Bu sorguda tablo tablosundan, kullanici, kayit_tarihi ve ziyaret_sayisi alanlarını seçiyoruz. Koşul olarak da ziyaret_sayisi 0'dan büyük olan kayıtları belirtiyoruz. Sonuç kümemiz ise bu listede oluşacak ilk 5 kayıdı tutuyor.

Kayıtları seçtik ama sıralı değil?

Evet kayıtlar bilgisayarın kontrol sırasına göre çekildi, belirli kriterlere göre bu kayırları sıralayarak çekmek isteyebiliriz. Örnek vermek gerekirse, önceki sorguda ziyaret sayısı 0'dan büyük kullanıcıları çekiyorduk ama sonuç olarak dönen kümede en çok ziyaret eden kullanıcı olmayabilir, bu sorguyu geliştirip ziyaret sayısına göre sıralatalım. Sıralama işlemi için de bir kalıp kullanıyoruz, Kullanımı, ORDER BY <alan adı> <ASC/DESC>. alan adı olarak tek alan adı belirtiyoruz, ondan sonra gelen kısımda ise ASC artan sırada, DESC, azalan sırada sıralamayı belirliyoruz. Bir sorguda birden fazla sıralama koşulu bulunmaz, ayrıca bu sıralama kalıbı, koşullardan sonra, LIMIT kalıbından önce yazılır. Sonuç olarak yukarıdakine göre geliştirdiğimiz sorgumuz şu şekilde olacaktır :
SELECT kullanici, kayit_tarihi, ziyaret_sayisi FROM `tablo`
WHERE ziyaret_sayisi>0 ORDER BY ziyaret_sayisi DESC LIMIT 0,5
Böylece en çok ziyaret eden 5 kişiyi görmüş olduk.

Bu dökümanda verileri sayfa sayfa listelere parçalamadan bahsetmiyorum çünkü bu işlem sadece mysql ile yapılmıyor, daha önce yazdığım bir dökümanda bu konuda ayrıntılı hesaplamaları ve mysql listeleme işlemleri için nasıl yapıldığına değinmiştim.
Verileri sayfa sayfa listeletmekle ilgili dökümana erişmek için tıklayın!

Verileri göstermek için işlemek

PHP'de mysql işlemlerini mysql fonksiyonları ile yapıyorduk, sorgularımızı mysql_query fonksiyonu ile işletiyorduk Ancak bu fonksiyonu bir değişkene atama şeklinde kullanıyoruz. Örneğin :
$sonuc = mysql_query("...");
Şeklindeki kullanımda, sorgudan çıkan sonuç kümesini $sorgu değişkeninde saklıyoruz. Bu sonuç kaynağını başka mysql fonksiyonlarına sokarak bazı şeyler elde edeceğiz :
Sonuç kümesindeki kayıt sayısını mysql_num_rows() fonksiyonu ile öğrnebiliriz. mysql_fetch_assoc() ve mysql_fetch_array() fonkyisonları ile de sıradaki sonucu dizi şeklinde alabiliriz. Genel kullanım ile bir sorgunun çıktısını elde etmek için şu yöntem kullanılır :
// sql cümlesini olusturalim
$sql = "SELECT kullanici, ziyaret_sayisi FROM tablo ORDER BY ziyaret_sayisi DESC LIMIT 0,10";

// isletelim
$sonuc = mysql_query($sql) or die("HATA : " . mysql_error());

// cikan sonuc kumesi bos degilse
if( mysql_num_rows($sonuc) > 0 ){
  // sonuc kumesini donelim
  while( $satir = mysql_fetch_assoc($sonuc) ){
    // bilgileri yazdiralim
    print('kullanici = ' . $satir["kullanici"] . ', ');
    print('ziyaret_sayisi = ' . $satir["ziyaret_sayisi"] . '<br><br>');
  }
}
Burada sorgu cümlemizi önce $sql değişkenine atıyoruz. Bazen öyle bir gelişmiş sql yazmamız gerekiyor ki bu cümleyi döngülerle, eklemeli olarak uzun işlem ve kontrollere göre hazırlayabiliyoruz. PHP ile MySQL birlikte kullanıldığında gerçekten çok güçlü olabiliyor. $sql değişkenindeki string'i mysql_query() fonksiyonu ile işletip $sonuc değişkenine atıyoruz sonuç kümesini. Ardından mysql_num_rows() fonksiyonu ile sonuç kümesinin boş olup olmadığını kontrol ediyoruz. Eğer tablo boş olsaydı sonuç kümemiz boş dönecekti, bu kontrol'e else ekleyip "Gösterilecek kayıt bulunamadı" gibi bir çıktı verdirmemiz de mümkün. Eğer sonuç kümesi boş değilse while ile satır satır bilgileri alıyoruz mysql_fetch_assoc fonksiyonu sayesinde. Burada atama işlemi yapıldığı için sonuç kümesindeki kayıtların hepsi bittiği zaman atama işlemi hep false değeri dönecektir. Bu yüzden while ile bu şekildeki kullanım oldukça sağlıklıdır. $satir değişkenine sorguda belirttiğimiz sıralamaya göre çıkan sonuç kümesinden sırayla kayıtlar çekilmektedir. Bu atama işleminde $satir değişkenine hangi alanları seçmişsek o alanları anahtar olarak tutan bir dizi atanır. Kullanırken de anahtar kelimelerle kolayca kullanabiliriz. Çıktıda istediğimiz şekilde bir html çıktısı oluşturabiliriz. Burada basit html çıktısı verdirdim, geliştirilerek tablo şeklinde de çıktı verdirilebilir. Çıktıların işlenişi genellikle bu şekildedir. Fazla denetimlerle ve html çıktısını iyi ayarlayarak daha opsiyonel sonuçlar elde edebilirsiniz.

Listeleme ve gösterme sistemlerinin basit mantığı

Aslında hiçbir farkı yoktur az önce yaptığımız işlemden, listelerken sadece kayıt numaraları, başlıkları ve gerekli alt bilgileri (okunma sayıları vs vs) çekiliyor. Listede link olarak bir sayfaya kayıt numaraları gönderiliyor. siz o başlığa tıkladığınızda ise o sayfaya gitmiş oluyorsunuz. Sayfa da da yapılan şey o kayıt no'ya ait kayıdı seçmek, bütün bilgileri çeker ve başlık, okunma sayısı gibi ayrıtıları verdikten sonra sistemle ilgili asıl işi yapan kodlar çalıştırılır. Yani döküman ise dökümanın içeriğini basar, forum ise forumda yazılanları işler.. Bu tarz sistemler basitlikten gelerek geliştirilir. Zaten herşey de öyle değil midir? :-)

Basit olarak seçme/listeleme işlemlerinde benzerliği kullanmak ve birşeyler aramak

Bu işlemlerde WHERE kalıbının bir özelliği olan LIKE'ı kullanacağız. WHERE'da belirttiğimiz koşullarda basit operatörleri kulanarak büyük, küçük, eşit, eşit değil koşullarını tanımlayabiliyorduk.. LIKE ile bir değere benzerliği de aratabiliyoruz. LIKE basit olarak 2 joker karakterden oluşur _ (alt çizgi karakteri) ile tek bir karakteri % (yüzde karakteri) ile bir ve birden çok karakteri ifade edebilirsiniz.

Mesela kullanıcılardan a harfi ile başlayanları seçmek istiyorsak ;
SELECT kullanici, kayit_tarihi FROM tablo WHERE kullanici LIKE 'a%' ORDER BY kayit_tarihi
Farklı şekilde; sadece Ocak 2005'de kayıt olmuş kullanıcıları görmek için ;
SELECT kullanici, kayit_tarihi FROM tablo WHERE kayit_tarihi LIKE '2005-01%'
Siteyi 10-20 arasında ziyaret etmiş olan kullanıcılları görmek için de ;
SELECT kullanici, ziyaret_sayisi FROM tablo WHERE ziyaret_sayisi LIKE '1_'
sorguları örnek olarak verilebilir...

MySQL'in kendi dökümantasyonunu veya mysqlferaks'daki gibi bir dökümantasyonu uygulama yaparak öğrenip sonra bu altyapıyı kullanmanızı öneririm. Çünkü güçlü bir sql ve güçlü bir php işlemesi ile çok hızlı ve çok sağlam veritabanları yönetebilirsiniz. Bu konuda her zaman hayret ettiğim bir site vardır. Spymac.com bu sitedeki online kullanıcı sayısı ve yaptıkları işlemleri düşünürsek oldukça sağlam bir altyapı gerekiyor, ki bu altyapının da php ve mysql ile kurulduğunu görünce mysql ve php'nin yapabilecekleri karşısında hayret etmeden duramıyorsunuz.

Bol sorgulu kodlar.. :-)


Hazırlayan : Mehmet Fatih YILDIZ

form

Form öğerleri kullanabilmek için öncelikle bir form belirlemeniz gerekir. Form öğerlerini bu etiketler arasına yazmalısınız. name ile formun adını, method ile gönderi metodunu (get veya post), action ile formun belirtilen metodla gönderileceği sayfayı belirleriz.
<form name="iletisim_formu" method="post" action="iletisim_formu_isle.php">
  <!-- FORM ELEMANLARI -->
</form>
name formun ismidir, javascript ile dom ağaç yapısından forma ve form elemanlarına ulaşmırken kullanırız. method formun postalama metodudur. GET ile url'den verileri açıkca gönderir, POST ile göstermeden postalar. Genelde POST metodunu kullanırız. action ise formun postalanacağı adrestir ve genellikle bir sunucu tabanlı dilin betik dosyası olur.

input

Her türlü bilgiyi input'lar sayesinde girdi aldırırız. name ile, formun action parametresinde belirtilen sayfaya postalanırken değişken adlarını, girilen değer belirler. value parametresi ise o öğe için geçerli değeri taşır. Bu geçerli değerler çıktısı verilecek input türüne göre değişkenlik gösterir. type parametresi ile de çıktısı verilecek form öğesinin türünü belirleriz. Bu öğeleri, türlerine göre ayrı ayrı inceleyelim ;


button : Çıktı olarak bir buton basılır. value değeri butonun üzerinde görüntülecek yazıyı belirler. Butonun geçerli olarak hiçbir fonksiyonu yoktur. onClick olayına atanan javascript ile bir fonksiyon kazandırılır.
<input type="button" value="Buraya Basabilirsiniz">
Çıktı :


submit : Çıktı olarak buton basılır. Ancak bu buton formu gönderme işine yarar. Geçerli olarak tarayıcının diline göre formu göndermeyi ifade eden bir kelime ile görüntülenir. value parametresi ile bunu Gönder, Devam gibi bir anlatım belirleyebilirsiniz.
<input type="submit" value="Gönder">
reset : Çıktı olarak yine buton basılır. Buton formdaki bütün öğelerin değerlerini, ilk değerlerine döndürür. Yani geçerli value değerlerine döner.
<input type="reset" value="Formu Sıfırla">
text : Tek satırlık bilgi giriş alanı basar.
<input type="text" name="bilgi_giris_alani" value="varsayılan değer">
Çıktı :


password : text ile aynıdır. Tek farkı yazılan bütün karakterlerin değerleri korunurken, gösterimde işletim sistemine göre bir şifreleme gösterimi basılır. Windows'da büyük nokta, bazı tarayıcılarda hala *, bazılarında ise hiçbirşey görüntülenmez.
<input type="password" name="sifre_giris_alani">
Çıktı :


checkbox : Seçim kutusu basılır. Eğer seçilmişse gönderilen sayfaya değeri on olarak, seçili değilse off olarak gider.
<input type="checkbox" name="onay"> Bisikletin var mı?
Çıktı : Bisikletin var mı?

Eğer "checked" argümanı verilirse ekrana varsayılan olarak seçili basılır. Örneğin:
<input type="checkbox" name="onay" checked> Bisikletin var mı?
Çıktı : Bisikletin var mı?


radio : Seçim butonları koyar. Kullanıcıya birden çok seçenek ve bunlardan birinin seçilmesi istenirse bunları kullanırız. Bir seçim gurubunda her seçenek için bir tane radio türünde input öğesi eklenir, name yani isim parametrelerine aynı değer verilir ve value parametresine verilen değerlerden, form gönderilirken seçilmiş olanının değeri o isim yani değişken ile gönderilecek sayfaya gönderilir.
Kaç tane bilgisayarın var?
<input type="radio" name="bilgisayar_sayisi" value="1"> 1 tane
<input type="radio" name="bilgisayar_sayisi" value="2" checked> 2 tane
<input type="radio" name="bilgisayar_sayisi" value="3"> 3 tane
<input type="radio" name="bilgisayar_sayisi" value="+"> 3'den fazla
Çıktı : Kaç tane bilgisayarın var?
1 tane
2 tane
3 tane
3'den fazla

Mesela "2 tane" seçeneğinin inputunda "checked" argümanı var. Onun için form ilk yüklendiğinde 2 seçeneği seçili oluyor.

label

label'dan hemen bahsetmek istiyorum çünkü genellikle checkbox ve radiobuttonlar için kullanılırlar. label adı üzerinde etikettir. Yani bir inputun aslında başlığıdır. Yani siz formda bir text input veya başka bir input basarken onun hemen öncesine bir açıklama ile o bilginin ne olduğunu girersiniz. Mesela;

E-Posta Adresiniz :

Buarda başlığa tıklamaya ihtiyaç yoktur. Yani kimse "E-Posta Adresiniz : " yazısına tıklayıp birşey yapmak istemez. Fakat checkbox ve radiobutton'larda böyle bir ihtiyaç hissedilir. Mesela:
<input type="checkbox"> Web standartlarını seviyor musun?
Web standartlarını seviyor musun?

Burada ise çıkan ufacık tik atma kutusuna tıklamaktansa yazıya tıklamayı tercih eder çoğu kullanıcı. Ve doğal olarak yazıya tıklanınca hiçbirşey olmaz :-) label aslında burada işimize yarıyor.
<input type="checkbox" id="wss">
<label for="wss">Web standartlarını seviyor musun?</label>


Gördüğünüz gibi yazıya tıklayınca da input tıklanmış oluyor. Unutmamanız gereken şey şu: label'a for argümanı ile hangi input'un label'i olduğunu belirtmek. Tabiki bunu da input'a verdiğiniz id ile yapıyoruz.

Aynı durum radiobuttonlarda da söz konusudur, "Kaç bilgisayarın var?" sorusuna cevap verirken yazılara tıklayarak seçim yaptırmak için her radiobutton'a bir id verilir, yazılar label ile işaretlenip for ile de her label'a kendi inputunun id'si verilir.

label etiketi aynı zamanda bir formu css ile şekillendirirken de işinize yarayacaktır.

textarea

Çok satırlık yazı alanı basar. rows parametresi ile kaç satırlık bir alan görüntüleneceği, cols parametresi ile de kaç satır genişliğinde görüntüleneceği ayarlanabilir. Ancak bu ayarlar sadece görünümü ayarlar. içine girilebilecek metin teorik olarak sonsuzdur. Metnin uzunluğu makinenizin limitlerine göre belirlenir. Geçerli değer açılış ve kapanış etiketleri arasına girilir.
<textarea rows="5" cols="50">5 satır, 50 karakter genişlikli metin girdi alanı</textarea>


select ve option

Seçim listesi basar. Geçerli olarak boş liste basılır. Açılış ve kapanış etiketleri arasındaki option etiketleri bu listeyi oluşturur. option etiketleri arasına yazılan şekilde görüntülenir ve seçilen seçenek, select'in name parametresinde belirlenen değişkene seçilen option etiketindeki value parametresinin değerini atar. option etiketleri selectsiz kullanıldığında bir işe yaramazlar.
Hangi ildesiniz? :
<select name="secilen_il">
  <option value="ankara">Ankara</option>
  <option value="istanbul">İstanbul</option>
  <option value="izmir">İzmir</option>
  <option value="diger">Diğer</option>
</select>
Hangi ildesiniz? :


Hazırlayan : Mehmet Fatih YILDIZ

Bu döküman 30.02.2008 tarihinde yeniden düzenlenmiştir.

Popüler Etiketler

html html5 javascript form input mobile mail newsletter subscription api job icon ikon grafik download firefox banner calendar php logo url service tool google search ios iphone ipad apple app store store in-app purchase purchase verification storekit itunes connect itunes signature imza coding htaccess apache route router mod_rewrite twitter bootstrap social blog pear mdb2 prepare execute mysql mssql pgsql chart generator developer development compile nedir sql optimizasyon analyse procedure macosx query select less css language style mootools cookie assets ubuntu ntfs fstab login session iOS webkit web app app music facebook auth jquery rss xml wireless share css3 object js applications free compiler windows linux on-the-fly örnek kod workspace radio ipucu button svn subversion proje screen konsol terminal while date diff zaman tarih integration network kurulum nasıl gimp howto wanda digital medya db database media meta sitemap seo ajax osx player ie support browser pharma hack wordpress plugin box mfyz design sosyal ruffles doritos laptop notebook kitap framework http parse startups switch textarea opengraph fql optimization link connect widget portfolio tytz export phpstorm jetbrains ide editor spam www subdomain redirect crossdomain deployment version control git internet tebrik internet explorer cache open source lisans xmlhttprequest graph statistics istatistik insanlar regex xhtml table cms lifestream server kontrol yapıları if kampanya injection oyun license dokuman code ui ux icons browsers