• 09-10-2021, 14:59:34
    #1
    Merhaba, bir proje üzerine çalışıyorum iki noktada takıldım.

    Cafe Türlerini cafeturu adında bir tablodan çekiyorum ve cafeler adında bir veri tabanına kayıt işlemini yapıyorum.

    cafeturu tablosundaki verileri listelediğim multiselect:
                                    <div class="col-lg-6 col-md-12">
                                        <div class="form-group">
                                            <label>Mutfak Türü</label>
                                            <div class="multiselect_div">
    
    
                                             <?php  
    
                                             $cafe_id=$cafecek['cafeTuru_id'];
    
                                             $cafeturusor=$db->prepare("select * from cafeturu");
                                             $cafeturusor->execute();
    
    
                                             ?>
    
    
                                             <select id="multiselect1" name="cafeTuru_id[]" class="multiselect" multiple="multiple">
    
                                                 <?php
    
                                                 while($cafeturucek=$cafeturusor->fetch(PDO::FETCH_ASSOC)) {
    
                                                     $cafeTuru_id=$cafeturucek['cafeTuru_id'];
    
                                                     ?>
    
                                                     <option  value="<?php echo $cafeturucek['cafeTuru_id']; ?>"><?php echo $cafeturucek['cafeTuru_Ad']; ?></option>
    
                                                 <?php } ?>
    
                                             </select>
                                         </div>
                                     </div>
                                 </div>
    cafeler tablosu:

    cafeturu tablosu:


    Admin panelinde aynı bu şekilde listeleniyor.


    kayıt kısmında herhangi bir problem yok seçtiğim bütün türlerin idleri cafeler tablosunda göründüğü gibi aralarında , konarak listeleniyor.
    birincisi, şimdi ben seçilen türleri daha sonra istediğimde güncellemek istediğimde güncelleme sayfasındaki multiselect'e seçili olarak gelmelerini istiyorum. Nasıl yapabilirim?

    İkincisi, seçilmiş ve kaydedilmiş bu türleri detay sayfasına çekiyorum ama alttaki resimdeki idleri geliyor


    ben idleri yerine isimlerinin gelmesini istiyorum. Nasıl yapabilirim?
    Şimdiden yardımcı olan herkese teşekkür ederim
  • 09-10-2021, 15:05:13
    #2
    düzenleme sayfasına bu şekilde çekiyorum ama bir tane cafe türü seçilmişse seçili geliyor birden fazla seçilmişse seçili olarak gelmiyor.

    <div class="col-lg-6 col-md-12">
                                        <div class="form-group">
                                            <label>Mutfak Türü</label>
                                            <div class="multiselect_div">
    
    
                                             <?php  
    
                                             $cafe_id=$cafecek['cafeTuru_id']; 
    
                                             $cafeturusor=$db->prepare("select * from cafeturu");
                                             $cafeturusor->execute();
    
    
                                             ?>
    
    
                                             <select id="multiselect1" name="cafeTuru_id[]" class="multiselect" multiple="multiple">
    
                                                 <?php 
    
                                                 while($cafeturucek=$cafeturusor->fetch(PDO::FETCH_ASSOC)) {
    
                                                     $cafeTuru_id=$cafeturucek['cafeTuru_id'];
    
                                                     ?>
    
                                                     <option <?php if ($cafeTuru_id==$cafe_id) { echo "selected='select'"; } ?>  value="<?php echo $cafeturucek['cafeTuru_id']; ?>"><?php echo $cafeturucek['cafeTuru_Ad']; ?></option>
    
                                                 <?php } ?>
    
                                             </select>
                                         </div>
                                     </div>
                                 </div>
  • 09-10-2021, 15:07:16
    #3
    1.si option value selected 'i if-else yapabilirsin.
    2.si selected olanların idsi yerine isimlerini alırsın.

    1. için
    <?= ($gelendegeridsi==selectedidsi) ? 'selected' : null; ?>
  • 09-10-2021, 15:09:51
    #4
    Veritabana eklerken idleri json_encode leyerek ekle. Çekerkende json_decode olarak çekip foreach ile sorgu yaparsın. İd yerine isimleri çağırırsın
  • 09-10-2021, 15:54:49
    #5
    LizEdith adlı üyeden alıntı: mesajı görüntüle
    1.si option value selected 'i if-else yapabilirsin.
    2.si selected olanların idsi yerine isimlerini alırsın.

    1. için
    <?= ($gelendegeridsi==selectedidsi) ? 'selected' : null; ?>
    birinciyi dediğiniz gibi çekiyorum ama bir tane id varsa seçili geliyor birden fazla id varsa seçili gelmiyor
    ikinciyi anlamadım?
  • 09-10-2021, 16:25:22
    #6
    Misafir adlı üyeden alıntı: mesajı görüntüle
    Veritabana eklerken idleri json_encode leyerek ekle. Çekerkende json_decode olarak çekip foreach ile sorgu yaparsın. İd yerine isimleri çağırırsın
    Veritabanına ekleme işini böyle yapıyorum, dediğiniz şekilde nasıl yapılıyor? alttaki kod üzerinde gösterebilir misiniz? yada ilgili bir kaynak gönderebilir misiniz?

    if (isset($_POST['cafeEkle'])) {
    
    
        $uploads_dir = '../../dimg/cafeler';
        @$tmp_name = $_FILES['cafe_resimyol']["tmp_name"];
        @$name = $_FILES['cafe_resimyol']["name"];
        //resmin isminin benzersiz olması
        $benzersizsayi1=rand(20000,32000);
        $benzersizsayi2=rand(20000,32000);
        $benzersizsayi3=rand(20000,32000);
        $benzersizsayi4=rand(20000,32000);
        $benzersizad=$benzersizsayi1.$benzersizsayi2.$benzersizsayi3.$benzersizsayi4;
        $refimgyol=substr($uploads_dir, 6)."/".$benzersizad.$name;
        @move_uploaded_file($tmp_name, "$uploads_dir/$benzersizad$name");
    
    
        $cafe_turu = "";
        foreach ($_POST['cafeTuru_id'] as $cafe){
            $cafe_turu.=$cafe.",";
        }
    
    
        $cafe_ozellikleri = "";
        foreach ($_POST['cafe_ozellik'] as $cafed){
            $cafe_ozellikleri.=$cafed.",";
        }
    
    
    
        $kaydet=$db->prepare("INSERT INTO cafeler SET
            cafeTuru_id=:cafeTuru_id,
            cafe_ad=:cafe_ad,
            cafe_aciklama=:cafe_aciklama,
            cafe_telefon=:cafe_telefon,
            cafe_ozellik=:cafe_ozellik,
            cafe_ortalamaTutar=:cafe_ortalamaTutar,
            cafe_il=:cafe_il,
            cafe_ilce=:cafe_ilce,
            cafe_koordinat1=:cafe_koordinat1,
            cafe_koordinat2=:cafe_koordinat2,
            cafe_adres=:cafe_adres,
            cafe_facebook=:cafe_facebook,
            cafe_twitter=:cafe_twitter,
            cafe_instagram=:cafe_instagram,
            cafe_youtube=:cafe_youtube,
            cafe_resimyol=:cafe_resimyol
            ");
        $insert3=$kaydet->execute(array(
            'cafeTuru_id' => $cafe_turu,
            'cafe_ad' => htmlspecialchars($_POST['cafe_ad']),
            'cafe_aciklama' => htmlspecialchars($_POST['cafe_aciklama']),
            'cafe_telefon' => htmlspecialchars($_POST['cafe_telefon']),
            'cafe_ozellik' => $cafe_ozellikleri,
            'cafe_ortalamaTutar' => htmlspecialchars($_POST['cafe_ortalamaTutar']),
            'cafe_il' => htmlspecialchars($_POST['cafe_il']),
            'cafe_ilce' => htmlspecialchars($_POST['cafe_ilce']),
            'cafe_koordinat1' => htmlspecialchars($_POST['cafe_koordinat1']),
            'cafe_koordinat2' => htmlspecialchars($_POST['cafe_koordinat2']),
            'cafe_adres' => htmlspecialchars($_POST['cafe_adres']),
            'cafe_facebook' => htmlspecialchars($_POST['cafe_facebook']),
            'cafe_twitter' => htmlspecialchars($_POST['cafe_twitter']),
            'cafe_instagram' => htmlspecialchars($_POST['cafe_instagram']),
            'cafe_youtube' => htmlspecialchars($_POST['cafe_youtube']),
            'cafe_resimyol' => $refimgyol
        ));
    
        if ($insert3) {
    
            header("location:../panel/html/cafeListesi.php?durum=ok");
    
        } else {
    
            header("location:../panel/html/cafeListesi.php?durum=no");
    
        }
    
    }
  • 09-10-2021, 16:44:02
    #7
    Örnek burda mevcut
    https://stackoverflow.com/a/46233538