kura2yamato

select 2 multiple

May 1st, 2022 (edited)
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.80 KB | None | 0 0
  1. <?php
  2.  
  3. $dbsetup = [
  4.   'host' => 'localhost',
  5.   'user' => 'gunawan',
  6.   'pass' => 'ya4i8ib2',
  7.   'name' => 'gun_learning'
  8. ];
  9.  
  10. $conn =new PDO("mysql:host=" . $dbsetup['host'] . ";dbname=" . $dbsetup['name'] . "", $dbsetup['user'], $dbsetup['pass']);
  11. $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  12. //--------------------
  13. if($act=='data')
  14. {
  15.     $result=[];
  16.     // $result[]=[
  17.         // 'id'=>-1,
  18.         // 'text'=>'Silahkan memilih dari pilihan dibawah'
  19.     // ];
  20.     $type = $_GET['type']??'none';
  21.     $search = $_GET['search']??NULL;
  22.     if($type=='prod')
  23.     {
  24.        
  25.         $cat = $_GET['category']??NULL;
  26.         if($cat==NULL || (int)$cat == 0)
  27.         {
  28.             $result=[];
  29.             $result[]=[
  30.                 'id'=>-1,
  31.                 'text'=>'Silahkan memilih Category'
  32.             ];
  33.            
  34.         }
  35.         else
  36.         {
  37.             if(!is_array($cat))
  38.             {
  39.                 $sql="select nama from tb_category where id=?";
  40.                 $que = $conn->prepare($sql);
  41.                 $que->bindValue(1, $cat);
  42.                 $que->execute();
  43.                 $cat_name = $que->fetchColumn();
  44.                 $raw[ ]=$sql;
  45.                  
  46.                 if(strlen($search)<3)
  47.                 {
  48.                     $sql="select id, nama from tb_prod where cat_id=? limit 5";
  49.                     $que = $conn->prepare($sql);
  50.                     $que->bindValue(1, $cat);
  51.                 }
  52.                 else
  53.                 {
  54.                     $sql="select id, nama from tb_prod where  cat_id=? and nama like ? limit 5";
  55.                     $que = $conn->prepare($sql);
  56.                     $que->bindValue(1, $cat);
  57.                     $que->bindValue(2, "%$search%");
  58.                 }
  59.                 $raw[ ]=$sql;
  60.                 $que->execute();
  61.                 $data=[];$children=[];
  62.                 while($row = $que->fetch())
  63.                 {
  64.                     $result0[]=[
  65.                         'id'=>$row['id'],
  66.                         'text'=>$row['nama']
  67.                     ];
  68.                     $children[]=[
  69.                         'id'=>$row['id'],
  70.                         'text'=>$row['nama']
  71.                     ];
  72.                     $data[]=$row;
  73.                 }
  74.                 $result[]=[
  75.                     'text'=>$cat_name,
  76.                     'children'=>$children
  77.                 ];
  78.                 $raw[]='single cat';
  79.             }
  80.             else
  81.             {
  82.                 foreach($cat as $id_cat)
  83.                 {
  84.                     $sql="select nama from tb_category where id=?";
  85.                     $que = $conn->prepare($sql);
  86.                     $que->bindValue(1, $id_cat);
  87.                     $que->execute();
  88.                     $cat_name = $que->fetchColumn();
  89.                     $raw[ ]=$sql;
  90.                      
  91.                     if(strlen($search)<3)
  92.                     {
  93.                         $sql="select id, nama from tb_prod where cat_id=? limit 5";
  94.                         $que = $conn->prepare($sql);
  95.                         $que->bindValue(1, $id_cat);
  96.                     }
  97.                     else
  98.                     {
  99.                         $sql="select id, nama from tb_prod where  cat_id=? and nama like ? limit 5";
  100.                         $que = $conn->prepare($sql);
  101.                         $que->bindValue(1, $id_cat);
  102.                         $que->bindValue(2, "%$search%");
  103.                     }
  104.                     $raw[ ]=$sql;
  105.                     $que->execute();
  106.                     $data=[];$children=[];
  107.                     while($row = $que->fetch())
  108.                     {
  109.                         $result0[]=[
  110.                             'id'=>$row['id'],
  111.                             'text'=>$row['nama']
  112.                         ];
  113.                         $children[]=[
  114.                             'id'=>$row['id'],
  115.                             'text'=>$row['nama']
  116.                         ];
  117.                         $data[]=$row;
  118.                     }
  119.                     $result[]=[
  120.                         'text'=>$cat_name,
  121.                         'children'=>$children
  122.                     ];
  123.                 }
  124.                
  125.                 $raw[]='arr cat';
  126.             }
  127.            
  128.             $raw['data']=$data;
  129.         }
  130.  
  131.     }
  132.    
  133.     if($type=='category')
  134.     {
  135.         if(strlen($search)<3)
  136.         {
  137.             $sql="select id, nama from tb_category";
  138.             $que = $conn->prepare($sql);
  139.         }
  140.         else
  141.         {
  142.             $sql="select id, nama from tb_category where nama like ?";
  143.             $que = $conn->prepare($sql);
  144.             $que->bindValue(1, "%$search%");
  145.         }
  146.        
  147.         $que->execute();
  148.         $data=[];
  149.         while($row = $que->fetch())
  150.         {
  151.             $result[]=[
  152.                 'id'=>$row['id'],
  153.                 'text'=>$row['nama']
  154.             ];
  155.             $data[]=$row;
  156.         }
  157.         $raw['data']=$data;
  158.     }
  159.    
  160.     $return=[
  161.         'results'=>$result,
  162.         'params'=>$_GET,
  163.         'raws'=>@$raw
  164.     ];
  165.    
  166.     echo json_encode($return);
  167.     die;
  168.    
  169. }
  170. ?>
  171. <html lang="en">
  172. <head>
  173.     <title>jquery select2 ajax php example</title>
  174.     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha256-aAr2Zpq8MZ+YA/D6JtRD3xtrwpEz2IqOS+pWD/7XKIw=" crossorigin="anonymous" />
  175.     <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha256-OFRAJNoaD8L3Br5lglV7VyLRf0itmoBzWUoM+Sji4/8=" crossorigin="anonymous"></script>
  176.     <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script>
  177.  
  178. <link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
  179. <script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
  180. <style>
  181.     .select-js{
  182.         width:200px;
  183.     }
  184.     body{
  185.         padding:10px 20px;
  186.     }
  187. </style>
  188. </head>
  189. <body>
  190. <form>
  191. <!--br/>Test  <select class='select-js js-data-example-ajax'><option>Pilih Repo</option></select-->
  192. <br/>Kategori  
  193. <select class='select-js select-cat' multiple="multiple"><option>Pilih kategori tersedia</option></select>
  194. <br/>Barang  <select class='select-js select-prod'><option>Pilih kategori terlebih dahulu</option></select>
  195. </form>
  196.  
  197. <script>
  198. $(document).ready(function() {
  199.     $('.js-data-example-ajax, .select-cat').select2({
  200.       ajax: {
  201.         url: 'index.php?act=data',
  202.         dataType: 'json',
  203.         // Additional AJAX parameters go here; see the end of this chapter for the full code of this example
  204.         data: function(params)
  205.         {
  206.             var query={
  207.                 search:params.term,
  208.                 type:'category'
  209.             };
  210.             return query;
  211.         },
  212.         processResults: function (data) {
  213.             return {
  214.               results: data.results
  215.             };
  216.         },
  217.       }
  218.     });
  219.     $('.select-cat').on("select2:select", function(e) {
  220.         $(".select-prod").empty();
  221.         //console.log('see');// what you would like to happen
  222.     });
  223.    
  224.     $('.select-prod').select2({
  225.       ajax: {
  226.         url: 'index.php?act=data',
  227.         dataType: 'json',
  228.         // Additional AJAX parameters go here; see the end of this chapter for the full code of this example
  229.         data: function(params)
  230.         {
  231.             var query={
  232.                 search:params.term,
  233.                 type:'prod',
  234.                 category:$(".select-cat").val()
  235.             };
  236.             return query;
  237.         },
  238.         processResults: function (data) {
  239.             return {
  240.               results: data.results
  241.             };
  242.         },
  243.       }
  244.     });
  245.  
  246. });
  247.  
  248. </script>
  249.  
  250. </body>
  251. </html>
Add Comment
Please, Sign In to add comment