• 04-02-2024, 01:16:58
    #1
    Merhaba Arkadaşlar

    Tema seçme alanında alt alta option açarak listeleme yapıyorum bunun yerine temalar klasörünün içerisinde bulunan klasörleri option olarak nasıl listeleyebilirim ?

    Örneğin; public/tema klasörü içinde tema1 - tema 2 - tema 3 klasörü var ben tema4 klasörünü eklediğimde aşağıdaki kod yerine tema4 ün adının listelenmesini istiyorum.

    <div class="form-group col-md-6 mb-4">
                                            <label  for="temalar" class="w-100">Tema Seçimi </label>
                                            <select name="temalar" class="form-control" id="temalar" >                            
                                               
                                                <option value="tema1" <?php if($ayar['temalar'] == 'tema1'  ) { ?>selected<?php }?>>tema1 </option>
                                                <option value="tema2" <?php if($ayar['temalar'] == 'tema2'  ) { ?>selected<?php }?>>tema2 </option>
                                                <option value="tema3" <?php if($ayar['temalar'] == 'tema3'  ) { ?>selected<?php }?>>tema3 </option>
                                                
                                             </select>
                                        </div>
    Bu konuda yardımcı olaiblir misiniz? mantığı kavrayamadım mantığını söylerseniz çok mutlu olurum.

    ShopPHP dediğim yöntemle yapıyor mesela.
  • 04-02-2024, 01:19:31
    #2
    PHP - WORDPRESS - YAZILIM
    <select name="" id="">
        <?php
        // Dosyaların bulunduğu dizin
        $dizin = 'dosya_dizini/';
        // Dizin içindeki dosyaları listele
        $dosyalar = scandir( $dizin );
        // . ve .. dizinlerini filtrele
        $dosyalar = array_diff( $dosyalar, array( '.', '..' ) );
        // Her dosya için bir seçenek oluştur
        foreach ( $dosyalar as $dosya ) {
            echo "<option value=\"$dosya\">$dosya</option>";
        }
        ?>
    </select>
  • 04-02-2024, 01:20:05
    #3
    Önce klasör içerisindeki dizinleri tarayıp isimlerini alacaksınız daha sonra optionu döngüye alıp isimleri döndüreceksiniz
    https://chat.openai.com/share/12e4ee...c-21ab4ac1f122
  • 04-02-2024, 01:22:21
    #4
    "php scandir()" araştırırsan direkt istediğin işlemi yapmana yarayan local fonksiyondur.
  • 04-02-2024, 01:52:14
    #5
    metin_nn adlı üyeden alıntı: mesajı görüntüle
    <select name="" id="">
        <?php
        // Dosyaların bulunduğu dizin
        $dizin = 'dosya_dizini/';
        // Dizin içindeki dosyaları listele
        $dosyalar = scandir( $dizin );
        // . ve .. dizinlerini filtrele
        $dosyalar = array_diff( $dosyalar, array( '.', '..' ) );
        // Her dosya için bir seçenek oluştur
        foreach ( $dosyalar as $dosya ) {
            echo "<option value=\"$dosya\">$dosya</option>";
        }
        ?>
    </select>
    enescalban adlı üyeden alıntı: mesajı görüntüle
    Önce klasör içerisindeki dizinleri tarayıp isimlerini alacaksınız daha sonra optionu döngüye alıp isimleri döndüreceksiniz
    https://chat.openai.com/share/12e4ee...c-21ab4ac1f122
    DarkBy adlı üyeden alıntı: mesajı görüntüle
    "php scandir()" araştırırsan direkt istediğin işlemi yapmana yarayan local fonksiyondur.
    arkadaşlar hepinize öncelikle çok teşekkür ederim. Verdiğiniz kodlar ve mantıkla bi yere kadar gelebildim fakat sadece klasör listelemek istiyorum bunlarda dosya isimleri geldi. Chatgpt ye de sordum ama verdiği kodları çalıştıramadım.
  • 04-02-2024, 02:02:40
    #6
    foreach ( $dosyalar as $dosya ) {
            
            echo "<option value=\"$dosya\">$dosya</option>";
        }
    Arkadaşlar Birde son bir adım daha kaldı bu ehco içine bu aşağıda verdiğim kodu eksiksiz olarak nasıl yazabilirim?

    <option value="orijinal" <?php if($ayar['temalar'] == 'orijinal'  ) { ?>selected<?php }?>>Orijinal</option>
  • 04-02-2024, 03:32:37
    #7
    PHP - WORDPRESS - YAZILIM
    <select name="" id="">
        <?php
        $dizin = 'dosya_dizini/';
        $dosyalar = scandir($dizin);
        $dosyalar = array_diff($dosyalar, array('.', '..'));
        $secili_tema = $ayar['temalar'];
        foreach ($dosyalar as $dosya) {
            $selected = ($dosya == $secili_tema) ? 'selected' : '';
            echo "<option value=\"$dosya\" $selected>$dosya</option>";
        }
        ?>
    </select>