Ana içeriğe atla

Select2 ile multiple

Bir arkadaşın sorusuna karşılık küçük bir çalışma yaptım. Öncelikle soruyu yazalım :

Akif Bal
4 saat önce  -  Herkese açık olarak paylaşıldı
Merhaba
Select2 de multi select özelliğini aktif ettikten sonra çoklu seçimleri aktaramıyorum. Bu konuda bilginiz var mı? Son seçtiğim veriyi sunucuya yazıyor.
Şimdi konuyu inceleyelim. 
multiple özelliği select elementine birden fazla değeri seçme yeteneği sağlıyor. bu şekilde kullanıcının birden fazla değeri seçebilmesi sağlanıyor. Ancak bu özelliği kullandığınızda select elementi bir listbox haline gelmekte. Bu görüntüyü select2 ile daha güzel sunmanız mümkün. aşağıda 2 farklı eleman gözükmekte : 
textbox şeklinde gözüken eleman select2 . alt taraftaki de select elemanının multiple görüntüsü. 
Şimdi soruya geri dönersek 
1. eğer select2 ve multiple kullanacak isek select elemanı üzerinden bunu oluşturmak daha iyi olacaktır. 
2. Eğer bu elemandan seçilen değerleri server tarafında görmek istiyorsanız farklı teknolojilerde farklı kullanım şekillerine dikkat etmeniz lazım.
Ben konuyu hızlıca php tarafında modelledim. Aşağıda yukarıdaki görüntüyü oluşturan kodları bulacaksınız. Burada dikkatinizi çekmek istediğim konu select elemanının name'i. php için name'in sonuna [] eklemeniz gerekiyor. Bu şekilde php bu elemandan gelen bilgileri doğru şekilde algılayabiliyor.

Soruyu soran arkadaşımız eğer kullandığı teknolojiyi yazarsa, onunla ilgili olarak makaleyi genişletebilirim. 
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
 <html xmlns="http://www.w3.org/1999/xhtml">  
 <head>  
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
 <title>PhpFiddle Initial Code</title>  
     <link rel=stylesheet href="//cdnjs.cloudflare.com/ajax/libs/select2/3.5.0/select2.css"/>  
     <link rel=stylesheet href="//cdnjs.cloudflare.com/ajax/libs/select2/3.5.0/select2-bootstrap.css"/>  
 <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.js"></script>  
 <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/select2/3.5.0/select2.js"></script>  
 <script type="text/javascript">  
     $(function(){  
         $('#s01').select2();  
     });  
 </script>  
 <style type="text/css">  
 </style>  
 </head>  
 <body>  
 <?php  
 function getValue($value){  
     if(isset($_POST['s01'])){  
         if(is_array($_POST['s01'])){  
             return in_array($value, $_POST['s01']);  
         }  
         else{  
             return $_POST['s01'] == $value;  
         }  
     }  
     return false;  
 }  
 if(isset($_POST['s01'])){  
     echo '<p>'. (is_array($_POST['s01'])? implode(",",$_POST['s01']) : $_POST['s01'])."</p>";  
 }  
 ?>  
     <form method="post">  
         <div >  
             Select 2 :  
             <select id="s01" name="s01[]" multiple style="width:150px">  
                 <option value="1"<?php echo getValue('1') ? ' selected' : '' ?>>Bir</option>  
                 <option value="2"<?php echo getValue('2') ? ' selected' : '' ?>>İki</option>  
                 <option value="3"<?php echo getValue('3') ? ' selected' : '' ?>>Üç</option>  
                 <option value="4"<?php echo getValue('4') ? ' selected' : '' ?>>Dört</option>  
                 <option value="5"<?php echo getValue('5') ? ' selected' : '' ?>>Beş</option>  
             </select>  
         </div>  
         <input type="submit" value="send" />  
         <div> select(multiple) :   
             <select id="s02" name="s02[]" multiple>  
             <option value="1"<?php echo getValue('1') ? ' selected' : '' ?>>Bir</option>  
             <option value="2"<?php echo getValue('2') ? ' selected' : '' ?>>İki</option>  
             <option value="3"<?php echo getValue('3') ? ' selected' : '' ?>>Üç</option>  
             <option value="4"<?php echo getValue('4') ? ' selected' : '' ?>>Dört</option>  
             <option value="5"<?php echo getValue('5') ? ' selected' : '' ?>>Beş</option>  
         </select>  
         </div>  
     </form>  
     <pre><?php var_dump($_POST); ?></pre>  
 </body>  
 </html>  

Yorumlar

Bu blogdaki popüler yayınlar

Babamın durumu

Babam Mart 2017 de zatüreden hastanede yatmıştı. Bu sırada ciğerlerde bir kanser görülmüş. Bu kanserin ne olduğu ile ilgili tetkikler de başlamış. Zatüreden sonra hemen kanser ile ilgili işlemlere yoğunlaşıldı. Kalçada görülen bir kitle vardı. Ona da baktılar ama temiz çıktı. Kanser tedavisi olan kemoterapi hemen başladı. 14 haziranda ilk kemoterapi dozunu aldı. İlk günler iyiydi. 19 hazirandan itibaren durumu kötülemeye başlamış. En son 21 Haziran gecesi çok kötü olunca önce Torbalı Devlet Hastanesine götürüldü. Burada vücudundaki sodyum'un çok azalmış olmasından dolayı hemen sodyum takviyesi yapıldı. Sodyum takviyesi ancak bir oranda etkili olduktan sonra yine kötü duruma geri dönüş yapmış. Bu yüzden Bozyaka araştırma hastanesine sevkedildi. Bozyaka da önce dahiliye yoğun bakıma alındı. Ancak burada bir süre kalbi durmuş ve kalp masajı ile geri getirmişler. Sonrada genel yoğun bakıma aldılar.
Şu an yoğun bakımda hipotermi durumunda tutuluyor. Bu uygulanan tedavilerden biri. Diğer…

Azure Cosmos DB Emulator Çalışmıyor.

Merhaba, Bugün Azure Cosmos DB'ye bir göz attım. Kullanımını anlamak için kendi bilgisayarımıza bir emulator(Azure Cosmos DB Emulator) kurabiliyoruz. Bunu kurup çalıştırdığımda DocumentDB.StartupEntryPoint.exe'nin hata verdiğini gördüm. Hatanın detayını eventviewer'dan şöyle gördüm:

Git'te GitCredentialWinStore ile ilgili alınan hatanın çözümü

Git kurulumundan sonra remote(sunucu) ile ilgili işlemler yaptığınızda session açık olsada tekrar tekrar kullanıcı adı ve şifre soruyor ve mesaj ekranında aşağıdaki gibi bir hata alıyorsanız:
"C:\Program Files (x86)\GitExtensions\GitCredentialWinStore\git-credential-winstore.exe" erase: C:\Program Files (x86)\GitExtensions\GitCredentialWinStore\git-credential-winstore.exe: No such file or directory bu durumda  git'in şifre saklama sisteminde bir problem oluştuğunu görmekteyiz. Bunun çözümü olarak öncelikle https://github.com/Microsoft/Git-Credential-Manager-for-Windows adresinden Windows için git şifre yönetim aracını indirmeniz ve kurmanız gerekiyor. Dosyanın tam indirme linki :
https://github.com/Microsoft/Git-Credential-Manager-for-Windows/releases
şeklindedir. Güncel versiyonu buradan indirip kurduktan sonra GIT BASH ile 2 satırlık bir işlem yapmamız gerekiyor.

1. öncelikle git'in geçerli şifre yöneticisini siliyoruz :

git config --global --unset credential.helper