diff --git a/html/exhi/application/controllers/General.php b/html/exhi/application/controllers/General.php
index a18295cb3a5ccdee84647b4f9cc953b81237c3dc..6b3980e92e9abdcc002475d4aaf9587df47f2fd5 100644
--- a/html/exhi/application/controllers/General.php
+++ b/html/exhi/application/controllers/General.php
@@ -103,6 +103,23 @@ class general extends Exhibition_Controller
         echo json_encode($data);
     }
 
+    public function get_data_search_pagination()
+    {
+        $year = $_GET['year'];
+        $grade = $_GET['grade'];
+        $cluster = $_GET['cluster'];
+        $team = $_GET['team'];
+        $company = $_GET['company'];
+        $pname = $_GET['pname'];
+        $tag = $_GET['tag'];
+        $page = $_GET['page'];
+        $limit = $_GET['limit'];
+        ($tag == '') ?: $tag = implode(',', $tag);
+        $this->load->model('general/M_general', 'pagination');
+        $data['pagination'] = $this->pagination->get_data_search_pagination($year, $grade, $cluster, $team, $company, $pname, $tag, $page, $limit)->result();
+        echo json_encode($data);
+    }
+
     public function get_num_page()
     {
         $year = $_GET['year'];
@@ -111,10 +128,64 @@ class general extends Exhibition_Controller
         echo json_encode($data);
     }
 
+    public function get_num_search_page()
+    {
+        $year = $_GET['year'];
+        $grade = $_GET['grade'];
+        $cluster = $_GET['cluster'];
+        $team = $_GET['team'];
+        $company = $_GET['company'];
+        $pname = $_GET['pname'];
+        $tag = $_GET['tag'];
+        ($tag == '') ?: $tag = implode(',', $tag);
+        $this->load->model('general/M_general', 'num');
+        $data['num'] = $this->num->get_num_search_page($year, $grade, $cluster, $team, $company, $pname, $tag)->result();
+        echo json_encode($data);
+    }
+
     public function get_search()
     {
-        $data['keyword'] = $this->input->post();
-        $this->load->view('general/v_search', $data);
+        $year = $this->input->post('year_search');
+        if ($year == '') {
+            $year = 'YEAR(date)';
+        }
+        $grade = $this->input->post('grade');
+        if ($grade == '2') {
+            $grade = 'AND cluster_id != 0';
+        } else if ($grade == '3') {
+            $grade = 'AND team_id != 0';
+        } else if ($grade = 'cluster != 0' == '4') {
+            $grade = 'AND cluster_id = 0 AND team_id = 0';
+        } else {
+            $grade = '';
+        }
+        $cluster = $this->input->post('cluster');
+        if ($cluster == '') {
+            $cluster = 'cluster_id';
+        }
+        $team = $this->input->post('team');
+        if ($team == '') {
+            $team = 'team_id';
+        }
+        $company = $this->input->post('company');
+        if ($company == '') {
+            $company = 'company_id';
+        }
+        $pname = $this->input->post('pname');
+        if ($pname == '') {
+            $pname = '';
+        } else {
+            $pname = 'AND (name_th LIKE "%' . $pname . '%" OR name_en LIKE "%' . $pname . '%")';
+        }
+        $tag = $this->input->post('tag');
+        $data['year'] = $year;
+        $data['grade'] = $grade;
+        $data['cluster'] = $cluster;
+        $data['team'] = $team;
+        $data['company'] = $company;
+        $data['pname'] = $pname;
+        $data['tag'] = $tag;
+        $this->output_frontend('general/v_search', $data);
     }
 
     public function get_search_data()
diff --git a/html/exhi/application/models/general/M_general.php b/html/exhi/application/models/general/M_general.php
index 84fa562fbdaabd0dc4ffbbed4fa1329f8dec43c7..a88dc5e7ff1dcf6a7123c2c406073da4ca00a5af 100644
--- a/html/exhi/application/models/general/M_general.php
+++ b/html/exhi/application/models/general/M_general.php
@@ -16,23 +16,23 @@ class M_general extends Da_general
     {
         $sql = "SELECT count(project_id) AS cluster, team, project, all_project, by_year FROM project,
             (SELECT count(project_id) AS team FROM project
-                WHERE is_delete = 0 and team_id != 0 and YEAR(date) = $year) AS team, 
+                WHERE status = 1 and team_id != 0 and YEAR(date) = $year) AS team, 
             (SELECT count(project_id) AS project FROM project
-		        WHERE is_delete = 0 and team_id = 0 AND cluster_id = 0 and YEAR(date) = $year) AS project,
+		        WHERE status = 1 and team_id = 0 AND cluster_id = 0 and YEAR(date) = $year) AS project,
             (SELECT count(project_id) AS all_project FROM project
-                WHERE is_delete = 0) AS all_project,
+                WHERE status = 1) AS all_project,
             (SELECT count(project_id) as by_year FROM project
-		        Where is_delete = 0 and YEAR(date) = $year) as by_year
-		WHERE is_delete = 0 and cluster_id != 0 and YEAR(date) = $year";
+		        Where status = 1 and YEAR(date) = $year) as by_year
+		WHERE status = 1 and cluster_id != 0 and YEAR(date) = $year";
         $query = $this->db->query($sql);
         return $query;
     }
 
     public function get_project_2($year)
     {
-        $sql = "SELECT *,project.name AS pj_name,cluster.name AS ct_name FROM {$this->db_name}.project
+        $sql = "SELECT *,project.name_th as pj_name,cluster.name AS ct_name FROM {$this->db_name}.project
         JOIN cluster ON project.cluster_id = cluster.cluster_id
-		WHERE is_delete = 0 AND project.cluster_id != 0 AND YEAR(date) = $year";
+		WHERE status = 1 AND project.cluster_id != 0 AND YEAR(date) = $year";
         $query = $this->db->query($sql);
         return $query;
     }
@@ -40,7 +40,7 @@ class M_general extends Da_general
     public function get_project_year()
     {
         $sql = "SELECT YEAR(date) AS year FROM {$this->db_name}.project
-        WHERE is_delete = 0
+        WHERE status = 1
         GROUP BY YEAR(date)
         ORDER BY year DESC";
         $query = $this->db->query($sql);
@@ -50,7 +50,7 @@ class M_general extends Da_general
     public function get_project_2_year()
     {
         $sql = "SELECT YEAR(date) AS year FROM {$this->db_name}.project
-        WHERE is_delete = 0 AND cluster_id != 0
+        WHERE status = 1 AND cluster_id != 0
         GROUP BY YEAR(date)
         ORDER BY year DESC";
         $query = $this->db->query($sql);
@@ -59,9 +59,9 @@ class M_general extends Da_general
 
     public function get_project_3($year)
     {
-        $sql = "SELECT *,project.name AS pj_name,team.name AS t_name FROM {$this->db_name}.project
+        $sql = "SELECT *,project.name_th as pj_name,team.name AS t_name FROM {$this->db_name}.project
         JOIN team ON project.team_id = team.team_id
-		WHERE is_delete = 0 AND project.team_id !=0 AND YEAR(date) = $year";
+		WHERE status = 1 AND project.team_id !=0 AND YEAR(date) = $year";
         $query = $this->db->query($sql);
         return $query;
     }
@@ -69,7 +69,7 @@ class M_general extends Da_general
     public function get_project_3_year()
     {
         $sql = "SELECT YEAR(date) AS year FROM {$this->db_name}.project
-        WHERE is_delete = 0 AND team_id != 0
+        WHERE status = 1 AND team_id != 0
         GROUP BY YEAR(date)
         ORDER BY year DESC";
         $query = $this->db->query($sql);
@@ -78,9 +78,9 @@ class M_general extends Da_general
 
     public function get_project_4($year)
     {
-        $sql = "SELECT project_id, name as pj_name, image_logo, image_cover, user.student_id, user.first_name, user.last_name FROM {$this->db_name}.project
+        $sql = "SELECT project_id, name_th as pj_name, image_logo, image_cover, user.student_id, user.first_name, user.last_name FROM {$this->db_name}.project
 		join user on project.user_id = user.user_id
-		Where project.is_delete = 0 AND cluster_id = 0 AND team_id = 0 AND YEAR(date) = $year";
+		Where project.status = 1 AND cluster_id = 0 AND team_id = 0 AND YEAR(date) = $year";
         $query = $this->db->query($sql);
         return $query;
     }
@@ -88,7 +88,7 @@ class M_general extends Da_general
     public function get_project_4_year()
     {
         $sql = "SELECT YEAR(date) AS year FROM {$this->db_name}.project
-        WHERE is_delete = 0 AND cluster_id = 0 AND team_id = 0
+        WHERE status = 1 AND cluster_id = 0 AND team_id = 0
         GROUP BY YEAR(date)
         ORDER BY year DESC";
         $query = $this->db->query($sql);
@@ -98,18 +98,82 @@ class M_general extends Da_general
     public function get_data_pagination($year, $page, $limit)
     {
         $offset = ($page - 1) * $limit;
-        $sql = "SELECT project_id, name as pj_name, image_logo, image_cover, user.student_id, user.first_name, user.last_name FROM {$this->db_name}.project
+        $sql = "SELECT project_id, name_th as pj_name, image_logo, image_cover, user.student_id, user.first_name, user.last_name FROM {$this->db_name}.project
 		join user on project.user_id = user.user_id
-		Where project.is_delete = 0 AND cluster_id = 0 AND team_id = 0 AND YEAR(date) = $year
+		Where project.status = 1 AND cluster_id = 0 AND team_id = 0 AND YEAR(date) = $year
         LIMIT $limit OFFSET $offset";
         $query = $this->db->query($sql);
         return $query;
     }
 
+    public function get_data_search_pagination($year, $grade, $cluster, $team, $company, $pname, $tag, $page, $limit)
+    {
+        $tag = ($tag == '') ? $tag = 'AND (project_tag.tag_id = project_tag.tag_id OR project_tag.tag_id IS NULL)' : $tag = 'AND project_tag.tag_id IN (' . $tag . ')';
+        $offset = ($page - 1) * $limit;
+        $sql = "SELECT *, project.project_id as project_id
+        FROM project
+        LEFT OUTER JOIN project_tag ON project_tag.project_id = project.project_id
+        WHERE 
+            (project_tag.project_id IS NULL OR project_tag.project_id = project_tag.project_id)
+            $pname
+            AND YEAR(date) = $year
+            AND company_id = $company
+            AND cluster_id = $cluster
+            AND team_id = $team
+            $grade
+            AND status = 1
+            $tag 
+            LIMIT $limit OFFSET $offset";
+        $query = $this->db->query($sql);
+        return $query;
+    }
+
     public function get_num_page($year)
     {
         $sql = "SELECT count(project_id) AS num_project FROM {$this->db_name}.project
-		Where is_delete = 0 AND cluster_id = 0 AND team_id = 0 AND YEAR(date) = $year";
+		Where status = 1 AND cluster_id = 0 AND team_id = 0 AND YEAR(date) = $year";
+        $query = $this->db->query($sql);
+        return $query;
+    }
+
+    public function get_num_search_page($year, $grade, $cluster, $team, $company, $pname, $tag)
+    {
+        $tag = ($tag == '') ? $tag = 'AND (project_tag.tag_id = project_tag.tag_id OR project_tag.tag_id IS NULL)' : $tag = 'AND project_tag.tag_id IN (' . $tag . ')';
+        $sql = "SELECT count(project.project_id) AS num_project
+        FROM project
+        LEFT JOIN project_tag ON project_tag.project_id = project.project_id
+        WHERE 
+            (project_tag.project_id IS NULL OR project_tag.project_id = project_tag.project_id)
+            $pname
+            AND YEAR(date) = $year
+            AND company_id = $company
+            AND cluster_id = $cluster
+            AND team_id = $team
+            $grade
+            AND status = 1
+            $tag
+        ";
+        $query = $this->db->query($sql);
+        // print_r($sql);
+        return $query;
+    }
+
+    public function get_search($year, $grade, $cluster, $team, $company, $pname, $tag)
+    {
+        $sql = "SELECT *
+        FROM project
+        LEFT JOIN project_tag ON project_tag.project_id = project.project_id
+        WHERE 
+            (project_tag.project_id IS NULL OR project_tag.project_id = project_tag.project_id)
+            AND name = $pname
+            AND YEAR(date) = $year
+            AND company_id = $company
+            AND cluster_id = $cluster
+            AND team_id = $team
+            $grade
+            AND status = 1
+            AND (project_tag.tag_id = $tag OR $tag IS NULL) -- Optional: include a tag filter
+        ";
         $query = $this->db->query($sql);
         return $query;
     }
diff --git a/html/exhi/application/views/general/v_general_home.php b/html/exhi/application/views/general/v_general_home.php
index e65a20e2cb6d70c17d1a86ffead6a925033f2d65..6e742a31572269fba6cefb3f555eb268a043ae5d 100644
--- a/html/exhi/application/views/general/v_general_home.php
+++ b/html/exhi/application/views/general/v_general_home.php
@@ -425,7 +425,7 @@
                     </div>
                     <div class="form-group has-success">
                         <label class="form-label">หมวดหมู่: </label>
-                        <select class="js-example-basic-multiple form-control" name="tag" multiple="multiple" id="muti">
+                        <select class="js-example-basic-multiple form-control" name="tag[]" multiple="multiple" id="muti">
                             <?php foreach ($tags as $tag) { ?>
                                 <option value="<?php echo $tag->tag_id ?>"><?php echo $tag->name ?></option>
                             <?php  } ?>
diff --git a/html/exhi/application/views/general/v_project_4.php b/html/exhi/application/views/general/v_project_4.php
index bd9cb1d41298d39cf981876523135a1e2ad2184a..9bdf7a893f75a9e37c057fcf3ba051dc11c2d71d 100644
--- a/html/exhi/application/views/general/v_project_4.php
+++ b/html/exhi/application/views/general/v_project_4.php
@@ -21,6 +21,7 @@
         text-align: left;
     }
 </style>
+<?php $y = $_GET['y']; ?>
 <div class="content-wrapper h-100">
     <div class="content-header">
         <div class="container-fluid g-3">
@@ -81,7 +82,7 @@
                     h2.setAttribute("class", "notfound")
                     const text = document.createTextNode('- ไม่พบข้อมูล -')
                     h2.appendChild(text)
-                    selectList.appendChild(h)
+                    selectList.appendChild(h2)
                 }
 
             }
@@ -157,6 +158,9 @@
         data.forEach((row, index) => {
             option = document.createElement("option")
             option.setAttribute("value", row.year)
+            if (row.year == <?php echo $y ?>) {
+                option.setAttribute("selected", "selected")
+            }
             const number = parseInt(row.year) + 543
             option.text = number
             selectList.appendChild(option)
diff --git a/html/exhi/application/views/general/v_search.php b/html/exhi/application/views/general/v_search.php
index b3552d22ecb30ecfa319e68a972745822193f3e7..94d11fb64c263a5328509fbb654476cb2953f5bd 100644
--- a/html/exhi/application/views/general/v_search.php
+++ b/html/exhi/application/views/general/v_search.php
@@ -21,11 +21,6 @@
         text-align: left;
     }
 </style>
-<pre>
-    <?php
-    echo print_r($keyword);
-    ?>
-</pre>
 <div class="content-wrapper h-100">
     <div class="content-header">
         <div class="container-fluid g-3">
@@ -56,25 +51,39 @@
 <div id="data-container"></div>
 <script>
     $(document).ready(function() {
-
+        load_data()
+        load_num_project()
     });
 
 
     let current_page = 1;
 
     function load_data() {
-        var year = document.getElementById("year").value;
         var limit = document.getElementById("limit").value;
+        var year = '<?php echo $year; ?>';
+        var grade = '<?php echo $grade; ?>';
+        var cluster = '<?php echo $cluster; ?>';
+        var team = '<?php echo $team; ?>';
+        var company = '<?php echo $company; ?>';
+        var pname = '<?php echo $pname; ?>';
+        var tag = <?php echo json_encode($tag); ?>;
         $.ajax({
             type: "get",
-            url: "<?php echo site_url() . '/General/get_data_pagination' ?>",
+            url: "<?php echo site_url() . '/General/get_data_search_pagination' ?>",
             data: {
                 'year': year,
+                'grade': grade,
+                'cluster': cluster,
+                'team': team,
+                'company': company,
+                'pname': pname,
+                'tag': tag,
                 'page': current_page,
                 'limit': limit
             },
             dataType: "json",
             success: function(data) {
+                console.log(data);
                 create_project(data.pagination)
             }
         });
@@ -82,11 +91,24 @@
 
     function load_num_project() {
         var limit = document.getElementById("limit").value;
+        var year = '<?php echo $year; ?>';
+        var grade = '<?php echo $grade; ?>';
+        var cluster = '<?php echo $cluster; ?>';
+        var team = '<?php echo $team; ?>';
+        var company = '<?php echo $company; ?>';
+        var pname = '<?php echo $pname; ?>';
+        var tag = <?php echo json_encode($tag); ?>;
         $.ajax({
             type: "get",
-            url: "<?php echo site_url() . '/General/get_num_page' ?>",
+            url: "<?php echo site_url() . '/General/get_num_search_page' ?>",
             data: {
-
+                'year': year,
+                'grade': grade,
+                'cluster': cluster,
+                'team': team,
+                'company': company,
+                'pname': pname,
+                'tag': tag,
             },
             dataType: "json",
             success: function(data) {
@@ -112,6 +134,7 @@
             current_page--;
             console.log('page' + current_page);
             load_data();
+            mark_btn('page' + current_page);
         }
     }
 
@@ -120,6 +143,7 @@
             current_page++;
             console.log('page' + current_page);
             load_data();
+            mark_btn('page' + current_page);
         }
     }
 
@@ -127,7 +151,7 @@
     function create_project(data) {
         let html = '';
         data.forEach((row, index) => {
-            html += `<a href="<?php echo site_url() . '/General/show_project_4' ?>" class="col-md-2">`;
+            html += `<a href="<?php echo site_url() . '/General/show_select/' ?>` + row.project_id + `" class="col-md-2">`;
             html += `<div class="card card-widget widget-user">`;
             html += `<div class="widget-user-header text-white" style="background: url('` + row.image_cover + `') center center;">`;
             html += `</div>`;
@@ -135,7 +159,7 @@
             html += `<img class="img-circle" src="` + row.image_logo + `" alt="User Avatar">`;
             html += `</div>`;
             html += `<div class="card-body">`;
-            html += `<h5 class="description-header"><b>` + row.name + `</b></h5><br>`;
+            html += `<h5 class="description-header"><b>` + row.name_th + `</b></h5><br>`;
             html += `<div class="description-block">`;
             html += `<h5 class="description-header">` + row.first_name + ' ' + row.last_name + `</h5>`;
             html += `<h5 class="description-header">` + row.student_id + `</h5>`;
@@ -152,10 +176,26 @@
         html += `<li><button class="page-link" onclick="previous_page()">ก่อนหน้า</button></li>`;
         for (i = 0; i < data; i++) {
             let page = i + 1;
-            console.log('i' + i);
-            html += `<li><button class="page-link" onclick="set_page(` + page + `)">` + page + `</button></li>`;
+            html += `<li><button class="page-link" id="page` + page + `" onclick="set_page(` + page + `); mark_btn('page` + page + `');">` + page + `</button></li>`;
         }
         html += `<li><button class="page-link" onclick="next_page(` + data + `)">ถัดไป</button></li>`;
         document.getElementById('select-page').innerHTML = html;
+        mark_btn('page' + current_page);
+    }
+
+    function mark_btn(btn_page_id) {
+        var elements = document.getElementsByClassName("page-link");
+        for (var i = 0; i < elements.length; i++) {
+            elements[i].style.backgroundColor = "";
+            elements[i].style.color = "";
+            elements[i].style.border = "";
+        }
+        var btn_page = document.getElementById(btn_page_id);
+        if (btn_page !== null) {
+            btn_page.style.backgroundColor = "darkturquoise";
+            btn_page.style.color = "white";
+            btn_page.style.border = "1px solid gray";
+        }
+
     }
 </script>
\ No newline at end of file