Başlıktan belli ne kadar kafa karıştırıcı bir olay olduğu, benim kafamın almadığı bu durumu if else yardımıyla satırlarca kod yazarak çözüyordum. Meğer post edilen bir name değerinin düzenleme(güncelleme) sayfasında seçili olarak getirip işlem yapmanın çözümü php de değil html taglarında gizliymiş.

Diyelim haftanın 7 gününü seçmeli yapmak istiyoruz.

İşin sırrı selected etiketinde gizli

<form action="" method="POST">
    <select class="form-control" name="gun">
        <option value="<?php echo $_POST['gun'] ?>" hidden selected="<?php echo $_POST['gun'] ?>"><?php echo $_POST['gun'] ?></option>
        <option value="Pazartesi">Pazartesi</option>
        <option value="Salı">Salı</option>
        <option value="Çarşamba">Çarşamba</option>
        <option value="Perşembe">Perşembe</option>
        <option value="Cuma">Cuma</option>
        <option value="Cumartesi">Cumartesi</option>
        <option value="Pazar">Pazar</option>
    </select>
    <button type="submit" class="btn btn-primary">Güncelle</button>
</form>

En üstteki option satırına hidden vermemizin nedeni. Seçim esnasında seçili olanın fazla gözükmemesi içindi. Diyelim ki value içerisinde post edilen ile seçenekler içerisinde göstermek istediğiniz farklı şeyler. Daha iyi anlaşılması açısından örnek veriyorum.

<form action="" method="POST">
    <select class="form-control" name="zaman">
        <option value="<?php echo $fonk['zaman'] ?>" hidden selected="<?php echo $fonk['zaman'] ?>"><?php echo $aktif ?></option>
        <option value="date('s')">Her Saniye</option>
        <option value="date('i')">Her Dakika</option>
        <option value="date('H')">Her Saat</option>
        <option value="date('d')">Her Gün</option>
        <option value="date('W')">Her Hafta</option>
        <option value="date('m')">Her Ay</option>
        <option value="date('Y')">Her Yıl</option>
    </select>
    <button type="submit" class="btn btn-primary">Güncelle</button>
</form>

Galiba ne demek istediğim anlaşıldı. Selected içerisine veritabanına daha önce kaydedilmiş yani post edilmiş veriyi çektik. Açıklama kısmında bunun karşılığı date(‘s’) ise Her Saniye yazdırmamız gerekiyor. O zaman php kodlarımız arasına şu if else bloğunu yerleştirmemiz gerek.

if ($fonk['zaman']=="date('s')") {
    $aktif = "Her Saniye";
}else if($fonk['zaman']=="date('i')"){
    $aktif = "Her Dakika";
}else if($fonk['zaman']=="date('H')"){
    $aktif = "Her Saat";
}else if($fonk['zaman']=="date('d')"){
    $aktif = "Her Gün";
}else if($fonk['zaman']=="date('W')"){
    $aktif = "Her Hafta";
}else if($fonk['zaman']=="date('m')"){
    $aktif = "Her Ay";
}else if($fonk['zaman']=="date('Y')"){
    $aktif = "Her Yıl";
}

$aktif değişkeninin içeriği bu şekilde veritabanında ne kayıtlı ise if else bloğundan belirlediğimiz karşılığını çekebilmek için sürekli değişir.

Eğe seçenekleriniz çoksa örneğin Türkiye’nin tüm illerini option kısmında sıralayıp seçilmesini sağlamak istiyorsunuz şu şekilde array kullanarak daha kullanışlı olabilir.

<select class="form-control" name="il">
<?php 
      $iller = array('İl Seçin','Adana','Adıyaman','Afyonkarahisar','Ağrı','Amasya','Ankara','Antalya','Artvin','Aydın','Balıkesir','Bilecik','Bingöl','Bitlis','Bolu','Burdur','Bursa','Çanakkale','Çorum','Denizli','Diyarbakır','Edirne','Elazığ','Erzincan','Erzurum','Eskişehir','Gaziantep','Giresun','Gümüşhane','Hakkâri','Hatay','Isparta','Mersin','İstanbul','İzmir','Kars','Kastamonu','Kayseri','Kırklareli','Kırşehir','Kocaeli','Konya','Kütahya','Malatya','Manisa','Kahramanmaraş','Mardin','Muğla','Muş','Nevşehir','Niğde','Ordu','Rize','Sakarya','Samsun','Siirt','Sinop','Sivas','Tekirdağ','Tokat','Trabzon','Tunceli','Şanlıurfa','Uşak','Van','Yozgat','Zonguldak','Aksaray','Bayburt','Karaman','Kırıkkale','Batman','Şırnak','Bartın','Ardahan','Iğdır','Yalova','Karabük','Kilis','Osmaniye','Düzce'); 
      //$veritabanindan_cekilen_il = "Samsun"; Eğer vt gelen ile karşılaştırma yapacaksanız...
       
      foreach ($iller as $il) { 
        if($veritabanindan_cekilen_il == $il){ 
          echo '<option value="'.$il.'" selected>'.$il.'</option>'; 
        }else{ 
          echo '<option value="'.$il.'">'.$il.'</option>'; 
        } 
      } 
?>
</select>