แบบนี้ทำยังไงหรอครับเกี่ยวกับ data table

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา แบบนี้ทำยังไงหรอครับเกี่ยวกับ data table

แบบนี้ทำยังไงหรอครับเกี่ยวกับ data table
แบบนี้ทำยังไงหรอคับ datatable คือผมทำ datatable ได้แล้ว แต่ต้องการให้ซ่อนข้อมูลก่อนอะครับ พอพิมพ์หรือค้นหาในช่องว่างค่อยแสดง 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
<?php
 
 
 
if(isset($_POST['search']))
 
{
 
    $valueToSearch = $_POST['valueToSearch'];
 
    // search in all table columns
 
    // using concat mysql function
 
    $query = "SELECT * FROM `keeps` WHERE CONCAT(`id`, `tname`, `brand`, `gen`, `sid`, `depart`, `position`, `date` ) LIKE '%".$valueToSearch."%'";
 
    $search_result = filterTable($query);
 
     
 
}
 
 else {
 
    $query = "SELECT * FROM `keeps`";
 
    $search_result = filterTable($query);
 
}
 
 
 
// function to connect and execute the query
 
function filterTable($query)
 
{
 
    $connect = mysqli_connect("localhost", " ", " ", " ");
 
    $filter_Result = mysqli_query($connect, $query);
 
    return $filter_Result;
 
}
 
 
 
?>
 
 
 
<!DOCTYPE html>
 
<html>
 
    <head>
 
 
 
 
 
 
 
 
 
 
 
    <title>SEARCH TOOL</title>
 
     
 
    </head>
 
    <style>
 
    body, p, h1 {
 
        font-family: 'Sarabun', sans-serif;
 
    }
 
    </style>
 
    <body>
 
    <div class="container-fluid">
 
    <br>
 
    <br>
 
    <br>
 
    <br>
 
    <h1 style="text-align: center; font-size:22px;">ค้นหาอุปกรณ์ทางการแพทย์</h1>
 
     
 
             
 
            <table id="myTable" class="table table-striped table-bordered" style="width:100%">
 
            <thead>
 
                <tr>
 
                    <th>ลำดับ</th>
 
                    <th>ชื่อเครื่องมือ</th>
 
                    <th>ยี่ห้อ</th>
 
                    <th>รุ่น</th>
 
                    <th>รหัสครุภัณฑ์</th>
 
                    <th>อยู่ที่แผนก</th>
 
                    <th>ตำแหน่งปัจจุบัน</th>
 
                    <th>วันและเวลา</th>
 
                </tr>
 
                </thead>
 
                <tbody>
 
 
 
      <!-- populate table from mysql database -->
 
                <?php while($row = mysqli_fetch_array($search_result)):?>
 
                <tr>
 
                    <td><?php echo $row['id'];?></td>
 
                    <td><?php echo $row['tname'];?></td>
 
                    <td><?php echo $row['brand'];?></td>
 
                    <td><?php echo $row['gen'];?></td>
 
                    <td><?php echo $row['sid'];?></td>
 
                    <td><?php echo $row['depart'];?></td>
 
                    <td><?php echo $row['position'];?></td>
 
                    <td><?php echo $row['date'];?></td>
 
                </tr>
 
                <?php endwhile;?>
 
                </tbody>
 
            </table>
 
        </form>
 
        </div>
 
            <!-- Latest compiled and minified JavaScript -->
 
            <script src="https://code.jquery.com/jquery-3.5.1.js"></script>
 
 
 
 
 
 
 
 
 
 
 
<script type="text/javascript">
 
$(document).ready(function() {
 
    $('#myTable').DataTable();
 
} );
 
</script>
 
         
 
    </body>
 
</html>


ฑีฆาวุฒิ ปิติวงศ์หิรัญกุล 14-07-2020 19:10:12

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
ตามรูปแบบทั่วไป ไม่สามารถทำได้ นอกจากว่าจะไปใช้เป็นแบบ server side
แล้วใช้วิธเช็ค กรณีที่มีการส่งค่าไปเท่านั้น จึงจะส่งข้อมูลมาแสดง  หรือถ้าอยากประยุกต์จริงๆ 
ก็อาจจะใช้วิธีส่งค่าค้นหาเริ่มต้นไป ประมาณนี้

1
2
3
4
5
$(document).ready(function() {
   
  $('#example').DataTable().search("_").draw();
 
});

ซึ่งก็เหมือนกับเราส่งค่า ที่ไม่มีในข้อมูลไปค้น ก็จะไม่แสดงค่าอะไรออกมา



แต่พอเราลบค่านั้นออก ข้อมูลก็จะแสดงปกติ เหมือนเดิม

อีกวิธี ใช้วิธีการซ่อน แท็ก tbody ของตารางไปก่อน เมื่อสร้าง datatable แล้ว จากนั้นใช้วิธีการตรวจจับ การพิมพ์ในช่องค้นหา
ถ้ามีข้อมูลส่งไปค้นหาให้แสดง tbody  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$(document).ready(function() {
   
  $('#example').DataTable();
  $(".dataTable tbody").hide(); // ซ่อนไปก่อน
   
  // ตรวจจับการพิมพ์ค้นหา
  $('.dataTables_filter input[type=search]').on( 'keyup click', function () {
    if($(this).val().length>0){
      $(".dataTable tbody").show();
    }else{
      $(".dataTable tbody").hide();
    }
  });
 
});


 

ตัวอย่าง DEMO

บทความแนะนำที่เกี่ยวข้อง
ใช้งาน Server side processing สำหรับ DataTable ร่วมกับ Codeigniter ตอนที่ 3อ่าน 12,947
ninenik 14-07-2020
 ความคิดเห็นที่ 2
ขอบคุณครับพี่ แต่ลองก๊อปไปแล้วไม่ได้อะครับ ผมขอดูโค๊ดทาง าฃhtmlหน่อยได้มั้ยครับ


ฑีฆาวุฒิ ปิติวงศ์หิรัญกุล 16-07-2020 22:28
 ความคิดเห็นที่ 3
คลิกขวาที่ iframe demo ดูตัวอย่างได้เลย



ninenik 17-07-2020
1






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ