• 24-01-2023, 15:24:25
    #1
    Merhabalar. İstiyorum ki konu editleme sayfamda kategori seçme bölümünde olan select alanına, konun kategorisinin selected olmasını istiyorum. Mantığını kuramadım. Ne yapmalıyım?
  • 24-01-2023, 15:29:18
    #2
    <?php echo ($id == $kategori->id) ? "selected" : ""; ?>
  • 24-01-2023, 15:32:49
    #3
    SauRonn adlı üyeden alıntı: mesajı görüntüle
    <?php echo ($id == $kategori->id) ? "selected" : ""; ?>
    <select class="form-control keskinKenar col-2" name="category_id[]">
    <?php foreach($categories as $category): ?>
    <option <?php echo ($_GET['id'] == $category->id) ? "selected" : ""; ?>><?=$category['category_name']?></option>
    <?php endforeach; ?>
    </select>
    şeklinde olması gerekmiyor mu? kullanımını anlayamadım malesef
  • 24-01-2023, 15:40:07
    #4
    <option value="<?= $category->id; ?>" <?= ($_GET['id'] == $category->id) ? 'selected' : ''; ?>><?= $category['category_name']; ?> </option>
    Eğer $category->id değeri $_GET['id'] değeriyle eşleşiyorsa sorunsuz çalışması gerek.

    Kontrol etmeniz için:

    <select class="form-control keskinKenar col-2" name="category_id[]">

    kodunu

    <select class="form-control keskinKenar col-2" name="category_id[]">&nbsp;<?= "Kategori ID: " . $category->id . " GET KategoriID: ". $_GET['id']; ?>

    ile değiştirin. Select menünüzün yanındaki idler hatasız tutuyor mu bakın.

    Yalnız: Kategori adınız $category['category_name'] olduğuna göre $category bir stdclass değil bir array. O yüzden kategori ID'niz de $category->id değil $category['id'] olmalı. Yani:
    <option value="<?= $category['id']; ?>" <?= ($_GET['id'] == $category['id']) ? 'selected' : ''; ?>><?= $category['category_name']; ?> </option>
    şeklinde deneyin.
  • 24-01-2023, 15:51:13
    #5
    SauRonn adlı üyeden alıntı: mesajı görüntüle
    <option value="<?= $category->id; ?>" <?= ($_GET['id'] == $category->id) ? 'selected' : ''; ?>><?= $category['category_name']; ?> </option>
    Eğer $category->id değeri $_GET['id'] değeriyle eşleşiyorsa sorunsuz çalışması gerek.

    Kontrol etmeniz için:

    <select class="form-control keskinKenar col-2" name="category_id[]">

    kodunu

    <select class="form-control keskinKenar col-2" name="category_id[]">&nbsp;<?= "Kategori ID: " . $category->id . " GET KategoriID: ". $_GET['id']; ?>

    ile değiştirin. Select menünüzün yanındaki idler hatasız tutuyor mu bakın.

    Yalnız: Kategori adınız $category['category_name'] olduğuna göre $category bir stdclass değil bir array. O yüzden kategori ID'niz de $category->id değil $category['id'] olmalı. Yani:
    <option value="<?= $category['id']; ?>" <?= ($_GET['id'] == $category['id']) ? 'selected' : ''; ?>><?= $category['category_name']; ?> </option>
    şeklinde deneyin.
    Çok teşekkrüler
    <option value="<?= $category['id']; ?>" <?= ($edit['category_id'] == $category['id']) ? 'selected' : ''; ?>><?= $category['category_name']; ?> </option>
    şeklinde işe yaradı!
  • 24-01-2023, 15:52:30
    #6
    iltu33 adlı üyeden alıntı: mesajı görüntüle
    Çok teşekkrüler
    <option value="<?= $category['id']; ?>" <?= ($edit['category_id'] == $category['id']) ? 'selected' : ''; ?>><?= $category['category_name']; ?> </option>
    şeklinde işe yaradı!
    $edit = $_GET ise yani $edit düzenlenen kategori ise her kategorinizde sorunsuz çalışır hocam. İyi çalışmalar.
  • 24-01-2023, 16:17:34
    #7
    SauRonn adlı üyeden alıntı: mesajı görüntüle
    $edit = $_GET ise yani $edit düzenlenen kategori ise her kategorinizde sorunsuz çalışır hocam. İyi çalışmalar.
    Sağolun hocam.
  • 28-01-2023, 10:04:26
    #8
    Verinin kategorisini selected yapmak için, veritabanından dönen kategori verisi ile select alanındaki option etiketleri arasındaki kategori değerleri karşılaştırılmalıdır. Eğer aynı değerleri bulursa, o option etiketine "selected" özelliği eklenmelidir. Örnek olarak, aşağıdaki gibi bir kod kullanabilirsiniz:

    <select name="category">
    <?php
    $query = $db->query("SELECT * FROM categories", PDO::FETCH_ASSOC);
    $categories = $query->fetchAll();
    foreach($categories as $category){
    $selected = "";
    if($category['id'] == $data['category_id']){
    $selected = "selected";
    }
    echo "<option value='".$category['id']."' ".$selected.">".$category['name']."</option>";
    }
    ?>
    </select>

    Bu kod veritabanından tüm kategorileri çekiyor ve her bir kategori için bir option oluşturuyor. Daha sonra, mevcut verinin kategori değeri ile her bir option etiketindeki kategori değeri karşılaştırılıyor ve eşleşirse o option etiketine "selected" özelliği ekleniyor.