Select2 Gruplama
Select2 içerisinde nasıl gruplama yapabilirim. Option group olmuyor çünkü değerler ajax ile json formatında geliyor.
<b>Alıcılar</b>
Ahmet
Mehmet
Hasan
<b>Satıcılar</b>
Huseyin
Mehmet
Osman
<div class="col-sm-12 col-md-3">
<label>Yolcu Tedarikçisi</label>
<select class="form-control form-control-sm select2-hidden-accessible inputyukseklik" style="width: 100%;" id="yolcu_tedarikci_id" name="yolcu_tedarikci_id"> <option>Seçilmedi</option>
</select>
</div>
//CARİ ÇEK ANLIK OLARAK VERİTABANINDAN ÇEKİLİR
$(".yolcu_tedarikci_id").select2({
placeholder: 'Seçiniz',
ajax: {
url: 'ajax/cari_cek.php',
dataType: 'json',
delay: 250,
processResults: function (data) {
return {
results: data
};
},
cache: true
}
});
//Carileri select2 ye çektiğim kod aşağıdaki gibidir
<?php
define("include",true);
require_once '../_fonksiyon.php';
$numberofrecords = 20;
if(!isset($_GET['q'])){
// Fetch records
$sql = $db->prepare("SELECT cari_id, cari_adi FROM tbl_cari WHERE sirket_id =? AND cari_durum=1 ORDER BY cari_tipi,cari_adi LIMIT ?"); $sql->execute(array($_SESSION["sirket_id"], $numberofrecords));
$usersList = $sql->fetchAll();
}else{
$search = $_GET['q'];// Search text
$sql = $db->prepare("SELECT * FROM tbl_cari WHERE sirket_id =? AND cari_adi like ? AND cari_durum=1 ORDER BY cari_tipi,cari_adi LIMIT ?"); $sql->execute(array($_SESSION["sirket_id"], '%'.$search.'%', $numberofrecords));
$usersList = $sql->fetchAll();
}
$json = [];
$json[] = ['id'=>'00000'.$_SESSION['sirket_id'], 'text'=>sirket_adi_bul($_SESSION['sirket_id'])];
foreach($usersList as $user){
$json[] = ['id'=>$user['cari_id'], 'text'=>$user['cari_adi']];
}
echo json_encode($json);
exit();
?>
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (1)
veriyi çekip json çevirirken gruplama yapabilirsin.Tabi veritanında grup isminde bir kolonun olması
gerekli.
{
"results": [
{
"text": "Grup İsmi",
"children" : [
{
"cari_id": 1,
"cari_adi": "Option 1.1"
},
{
"cari_id": 2,
"cari_adi": "Option 1.2"
}
]
}
],
"pagination": {
"more": true
}
}