PHP'de Veri Güncellerken Mevcut Verinin Kategorisini Selected Yapmak
7
●136
- 24-01-2023, 15:32:49SauRonn adlı üyeden alıntı: mesajı görüntüle
<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
<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[]"> <?= "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Çok teşekkrülerSauRonn adlı üyeden alıntı: mesajı görüntüle
<option value="<?= $category['id']; ?>" <?= ($edit['category_id'] == $category['id']) ? 'selected' : ''; ?>><?= $category['category_name']; ?> </option>
şeklinde işe yaradı! - 24-01-2023, 15:52:30$edit = $_GET ise yani $edit düzenlenen kategori ise her kategorinizde sorunsuz çalışır hocam. İyi çalışmalar.iltu33 adlı üyeden alıntı: mesajı görüntüle
- 28-01-2023, 10:04:26Verinin 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.