Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $dbsetup = [
- 'host' => 'localhost',
- 'user' => 'gunawan',
- 'pass' => 'ya4i8ib2',
- 'name' => 'gun_learning'
- ];
- $conn =new PDO("mysql:host=" . $dbsetup['host'] . ";dbname=" . $dbsetup['name'] . "", $dbsetup['user'], $dbsetup['pass']);
- $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
- //--------------------
- if($act=='data')
- {
- $result=[];
- // $result[]=[
- // 'id'=>-1,
- // 'text'=>'Silahkan memilih dari pilihan dibawah'
- // ];
- $type = $_GET['type']??'none';
- $search = $_GET['search']??NULL;
- if($type=='prod')
- {
- $cat = $_GET['category']??NULL;
- if($cat==NULL || (int)$cat == 0)
- {
- $result=[];
- $result[]=[
- 'id'=>-1,
- 'text'=>'Silahkan memilih Category'
- ];
- }
- else
- {
- if(!is_array($cat))
- {
- $sql="select nama from tb_category where id=?";
- $que = $conn->prepare($sql);
- $que->bindValue(1, $cat);
- $que->execute();
- $cat_name = $que->fetchColumn();
- $raw[ ]=$sql;
- if(strlen($search)<3)
- {
- $sql="select id, nama from tb_prod where cat_id=? limit 5";
- $que = $conn->prepare($sql);
- $que->bindValue(1, $cat);
- }
- else
- {
- $sql="select id, nama from tb_prod where cat_id=? and nama like ? limit 5";
- $que = $conn->prepare($sql);
- $que->bindValue(1, $cat);
- $que->bindValue(2, "%$search%");
- }
- $raw[ ]=$sql;
- $que->execute();
- $data=[];$children=[];
- while($row = $que->fetch())
- {
- $result0[]=[
- 'id'=>$row['id'],
- 'text'=>$row['nama']
- ];
- $children[]=[
- 'id'=>$row['id'],
- 'text'=>$row['nama']
- ];
- $data[]=$row;
- }
- $result[]=[
- 'text'=>$cat_name,
- 'children'=>$children
- ];
- $raw[]='single cat';
- }
- else
- {
- foreach($cat as $id_cat)
- {
- $sql="select nama from tb_category where id=?";
- $que = $conn->prepare($sql);
- $que->bindValue(1, $id_cat);
- $que->execute();
- $cat_name = $que->fetchColumn();
- $raw[ ]=$sql;
- if(strlen($search)<3)
- {
- $sql="select id, nama from tb_prod where cat_id=? limit 5";
- $que = $conn->prepare($sql);
- $que->bindValue(1, $id_cat);
- }
- else
- {
- $sql="select id, nama from tb_prod where cat_id=? and nama like ? limit 5";
- $que = $conn->prepare($sql);
- $que->bindValue(1, $id_cat);
- $que->bindValue(2, "%$search%");
- }
- $raw[ ]=$sql;
- $que->execute();
- $data=[];$children=[];
- while($row = $que->fetch())
- {
- $result0[]=[
- 'id'=>$row['id'],
- 'text'=>$row['nama']
- ];
- $children[]=[
- 'id'=>$row['id'],
- 'text'=>$row['nama']
- ];
- $data[]=$row;
- }
- $result[]=[
- 'text'=>$cat_name,
- 'children'=>$children
- ];
- }
- $raw[]='arr cat';
- }
- $raw['data']=$data;
- }
- }
- if($type=='category')
- {
- if(strlen($search)<3)
- {
- $sql="select id, nama from tb_category";
- $que = $conn->prepare($sql);
- }
- else
- {
- $sql="select id, nama from tb_category where nama like ?";
- $que = $conn->prepare($sql);
- $que->bindValue(1, "%$search%");
- }
- $que->execute();
- $data=[];
- while($row = $que->fetch())
- {
- $result[]=[
- 'id'=>$row['id'],
- 'text'=>$row['nama']
- ];
- $data[]=$row;
- }
- $raw['data']=$data;
- }
- $return=[
- 'results'=>$result,
- 'params'=>$_GET,
- 'raws'=>@$raw
- ];
- echo json_encode($return);
- die;
- }
- ?>
- <html lang="en">
- <head>
- <title>jquery select2 ajax php example</title>
- <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" />
- <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>
- <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script>
- <link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
- <script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
- <style>
- .select-js{
- width:200px;
- }
- body{
- padding:10px 20px;
- }
- </style>
- </head>
- <body>
- <form>
- <!--br/>Test <select class='select-js js-data-example-ajax'><option>Pilih Repo</option></select-->
- <br/>Kategori
- <select class='select-js select-cat' multiple="multiple"><option>Pilih kategori tersedia</option></select>
- <br/>Barang <select class='select-js select-prod'><option>Pilih kategori terlebih dahulu</option></select>
- </form>
- <script>
- $(document).ready(function() {
- $('.js-data-example-ajax, .select-cat').select2({
- ajax: {
- url: 'index.php?act=data',
- dataType: 'json',
- // Additional AJAX parameters go here; see the end of this chapter for the full code of this example
- data: function(params)
- {
- var query={
- search:params.term,
- type:'category'
- };
- return query;
- },
- processResults: function (data) {
- return {
- results: data.results
- };
- },
- }
- });
- $('.select-cat').on("select2:select", function(e) {
- $(".select-prod").empty();
- //console.log('see');// what you would like to happen
- });
- $('.select-prod').select2({
- ajax: {
- url: 'index.php?act=data',
- dataType: 'json',
- // Additional AJAX parameters go here; see the end of this chapter for the full code of this example
- data: function(params)
- {
- var query={
- search:params.term,
- type:'prod',
- category:$(".select-cat").val()
- };
- return query;
- },
- processResults: function (data) {
- return {
- results: data.results
- };
- },
- }
- });
- });
- </script>
- </body>
- </html>
Add Comment
Please, Sign In to add comment