Mini Shell

Direktori : /var/www/vhosts/ccp.ac.th/backup_full/httpdocs/fertilizer/
Upload File :
Current File : /var/www/vhosts/ccp.ac.th/backup_full/httpdocs/fertilizer/register.php

<!doctype html>
<html lang="en">

<head>
    <meta charset="utf-8" />
    <link rel="apple-touch-icon" sizes="76x76" href="assets/img/logo1.gif" />
    <link rel="icon" type="image/png" href="icon1.ico" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    <title>ลงทะเบียนผู้ใช้งาน - โปรแกรมระบบตรวจสอบธุรกิจแปรรูปปุ๋ยผสม</title>
    <meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0' name='viewport' />
    <meta name="viewport" content="width=device-width" />
    <link href="assets/css/bootstrap.min.css" rel="stylesheet" />
    <link href="assets/css/material-dashboard.css" rel="stylesheet" />
    <link href="assets/css/demo.css" rel="stylesheet" />
    <link href="assets/css/font-awesome.css" rel="stylesheet" />
    <link href="assets/css/google-roboto-300-700.css" rel="stylesheet" />
    <link href="assets/css/fonts1.css" rel="stylesheet"/>
    <link href="assets/smoke/css/smoke.min.css" rel="stylesheet"/>
    <link href="assets/css/sweetalert.css" rel="stylesheet"/>
    <link href="assets/css/all.min.css" rel="stylesheet" />
</head>

<body>
    <nav class="navbar navbar-primary navbar-transparent navbar-absolute">
        <div class="container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navigation-example-2">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="navbar-brand" href="#">โปรแกรมระบบตรวจสอบธุรกิจแปรรูปปุ๋ยผสม</a>
            </div>
            <div class="collapse navbar-collapse">
                <ul class="nav navbar-nav navbar-right">
                    <li>
                        <a href="login.php">
                            <i class="material-icons"><i class="fas fa-sign-in-alt"></i></i> เข้าสู่ระบบ
                        </a>
                    </li>
                </ul>
            </div>
        </div>
    </nav>

    <div class="wrapper wrapper-full-page">
        <div class="full-page login-page" filter-color="black" data-image="assets/img/login1.jpg">
            <div class="content">
                <div class="container">
                    <div class="row">
                        <div class="col-md-6 col-sm-8 col-md-offset-3 col-sm-offset-2">
                            <div class="card">
                                <div class="card-header text-center" data-background-color="green">
                                    <img class="mr-3 mt-3 rounded-circle" src="assets/img/logo1.png" style="width:60px;" >
                                    <h4 class="card-title"> ลงทะเบียนผู้ใช้งาน</h4>
                                </div>
                                <div class="card-content">
                                    <form id="registerForm">
                                        <!-- ===== 1. ค้นหาและเลือกชื่อ ===== -->
                                        <div class="form-group">
                                            <label><strong>1. เลือกชื่อผู้ใช้ <span class="text-danger">*</span></strong></label>
                                            <input type="text" id="searchName" class="form-control" placeholder="พิมพ์ชื่อ หรือ นามสกุล เพื่อค้นหา">
                                            <ul id="searchResults" class="list-group mt-2"></ul>
                                            <input type="hidden" id="selectedUserId">
                                        </div>
                                        
                                        <!-- ===== ข้อมูลผู้ใช้ที่เลือก ===== -->
                                        <div class="form-group">
                                            <label><strong>ชื่อ - นามสกุล:</strong></label>
                                            <input type="text" id="selectedUserName" class="form-control" readonly style="background-color: #f5f5f5;">
                                        </div>
                                        
                                        <div class="row">
                                            <div class="col-md-6">
                                                <div class="form-group">
                                                    <label><strong>ตำแหน่ง:</strong></label>
                                                    <input type="text" id="selectedUserPosition" class="form-control" readonly style="background-color: #f5f5f5;">
                                                </div>
                                            </div>
                                            <div class="col-md-6">
                                                <div class="form-group">
                                                    <label><strong>หน่วยงาน:</strong></label>
                                                    <input type="text" id="selectedUserAgency" class="form-control" readonly style="background-color: #f5f5f5;">
                                                </div>
                                            </div>
                                        </div>
                                        
                                        <hr>
                                        
                                        <!-- ===== 2. ชื่อผู้ใช้งาน ===== -->
                                        <div class="form-group">
                                            <label><strong>2. ชื่อผู้ใช้งาน <span class="text-danger">*</span></strong></label>
                                            <input type="text" id="registerUsername" class="form-control" placeholder="กรุณากรอกชื่อผู้ใช้งาน">
                                            <small id="usernameFeedback" class="form-text d-none"></small>
                                        </div>
                                        
                                        <!-- ===== 3. รหัสผ่าน ===== -->
                                        <div class="form-group">
                                            <label><strong>3. รหัสผ่าน <span class="text-danger">*</span></strong></label>
                                            <input type="password" id="registerPassword" class="form-control" placeholder="กรุณากรอกรหัสผ่าน (อย่างน้อย 8 ตัวอักษร)">
                                            <small id="passwordFeedback" class="form-text d-none"></small>
                                        </div>
                                        
                                        <!-- ===== 4. ยืนยันรหัสผ่าน ===== -->
                                        <div class="form-group">
                                            <label><strong>4. ยืนยันรหัสผ่าน <span class="text-danger">*</span></strong></label>
                                            <input type="password" id="registerConfirmPassword" class="form-control" placeholder="พิมพ์รหัสผ่านอีกครั้งเพื่อยืนยัน">
                                            <small id="confirmPasswordFeedback" class="form-text d-none"></small>
                                        </div>

                                        <div class="form-group mt-4">
                                            <button type="submit" class="btn btn-success btn-block" id="btnRegisterSubmit">ลงทะเบียน</button>
                                        </div>
                                        <div class="form-group">
                                            <a href="login.php" class="btn btn-secondary btn-block">ยกเลิก</a>
                                        </div>
                                    </form>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div id="spin"></div>

            <footer class="footer">
                <div class="container">
                    <nav class="pull-left">
                        <ul>
                            <li><a href="http://region8.cad.go.th/">เว็บไซต์สำนักงานตรวจบัญชีสหกรณ์ที่ 8</a></li>
                        </ul>
                    </nav>
                    <p class="copyright pull-right">
                        &copy; <script>document.write(new Date().getFullYear())</script> 
                        <a href="http://region8.cad.go.th/">กลุ่มเทคโนโลยีสารสนเทศ</a>, by Taveesak Tohlee.
                    </p>
                </div>
            </footer>
        </div>
    </div>

    <script src="assets/js/jquery-3.1.1.min.js" type="text/javascript"></script>
    <script>
        // กำหนด base path สำหรับ AJAX requests
        var BASE_PATH = window.location.pathname.substring(0, window.location.pathname.lastIndexOf('/') + 1);
    </script>
    <script src="assets/js/bootstrap.min.js" type="text/javascript"></script>
    <script src="assets/js/material.min.js" type="text/javascript"></script>
    <script src="assets/js/perfect-scrollbar.jquery.min.js" type="text/javascript"></script>
    <script src="assets/js/jquery.validate.min.js"></script>
    <script src="assets/js/moment.min.js"></script>
    <script src="assets/js/chartist.min.js"></script>
    <script src="assets/js/jquery.bootstrap-wizard.js"></script>
    <script src="assets/js/bootstrap-notify.js"></script>
    <script src="assets/js/jquery.sharrre.js"></script>
    <script src="assets/js/bootstrap-datetimepicker.js"></script>
    <script src="assets/js/jquery-jvectormap.js"></script>
    <script src="assets/js/nouislider.min.js"></script>
    <script src="assets/js/jquery.select-bootstrap.js"></script>
    <script src="assets/js/jquery.datatables.js"></script>
    <script src="assets/js/sweetalert.min.js"></script>
    <script src="assets/js/jasny-bootstrap.min.js"></script>
    <script src="assets/js/fullcalendar.min.js"></script>
    <script src="assets/js/jquery.tagsinput.js"></script>
    <script src="assets/js/material-dashboard.js"></script>
    <script src="assets/js/demo.js"></script>
    <script src="assets/smoke/js/smoke.min.js" ></script>
    <script src="assets/js/spin.min.js" type="text/javascript"></script>
    <script src="assets/js/all.min.js"></script>

    <script type="text/javascript">
        $().ready(function() {
            demo.checkFullPageBackgroundImage();
        });
    </script>

    <script>
        $(document).ajaxStart(function () {
            $("#spin").show();
        }).ajaxStop(function () {
            $("#spin").hide();
        });

        var BASE_PATH = window.location.pathname.substring(0, window.location.pathname.lastIndexOf('/') + 1);

        $(document).ready(function(){
            $("#searchName").focus();
            
            var spinner = new Spinner().spin();
            $("#spin").append(spinner.el);
            $("#spin").hide();

            // ======= 2. ค้นหารายชื่อจากตาราง user_confirm =======
            $(document).on('keyup', '#searchName', function() {
                var search = $(this).val();
                
                if (search.length < 1) {
                    $('#searchResults').empty().html('<li class="list-group-item text-muted">กรุณาพิมพ์ชื่อเพื่อค้นหา</li>');
                    return;
                }
                
                $.ajax({
                    url: BASE_PATH + 'register_api.php',
                    type: 'POST',
                    data: {
                        action: 'get_users_confirm',
                        search: search
                    },
                    dataType: 'json',
                    success: function(response) {
                        if (response.status === 'success' && response.data && response.data.length > 0) {
                            var html = '';
                            response.data.forEach(function(user) {
                                html += '<li class="list-group-item cursor-pointer user-item" data-id="' + user.id + '">' +
                                        '<strong>' + user.name + ' ' + user.last_name + '</strong><br>' +
                                        '<small class="text-muted">' + user.position + '</small><br>' +
                                        '<small class="text-muted">' + user.agency + '</small>' +
                                        '</li>';
                            });
                            $('#searchResults').html(html);
                        } else {
                            $('#searchResults').html('<li class="list-group-item text-warning">ไม่พบข้อมูลรายชื่อ</li>');
                        }
                    },
                    error: function() {
                        $('#searchResults').html('<li class="list-group-item text-danger">เกิดข้อผิดพลาดในการค้นหา</li>');
                    }
                });
            });

            // ======= 3. เลือกรายชื่อจากผลการค้นหา =======
            $(document).on('click', '.user-item', function() {
                var id = $(this).data('id');
                var name = $(this).find('strong').text();
                var position = $(this).find('small').eq(0).text();
                var agency = $(this).find('small').eq(1).text();
                
                $('#selectedUserId').val(id);
                $('#selectedUserName').val(name);
                $('#selectedUserPosition').val(position);
                $('#selectedUserAgency').val(agency);
                
                // ซ่อนผลการค้นหา
                $('#searchResults').empty();
                $('#searchName').val('');
                
                // โฟกัสไปที่ username
                $('#registerUsername').focus();
            });

            // ======= 4. ตรวจสอบ Username ว่างขณะขอบคุณ =======
            $(document).on('blur', '#registerUsername', function() {
                var username = $(this).val().trim();
                
                if (username === '') {
                    $('#usernameFeedback').removeClass('d-none').text('กรุณากรอกชื่อผู้ใช้งาน');
                    return;
                }
                
                $.ajax({
                    url: BASE_PATH + 'register_api.php',
                    type: 'POST',
                    data: {
                        action: 'check_username',
                        username: username
                    },
                    dataType: 'json',
                    success: function(response) {
                        if (response.status === 'error') {
                            $('#usernameFeedback').removeClass('d-none').addClass('text-danger').text(response.message);
                            $('#registerUsername').addClass('is-invalid');
                        } else {
                            $('#usernameFeedback').addClass('d-none').removeClass('text-danger');
                            $('#registerUsername').removeClass('is-invalid');
                        }
                    }
                });
            });

            // ======= 5. ตรวจสอบความยาวรหัสผ่าน =======
            $(document).on('keyup', '#registerPassword', function() {
                var password = $(this).val();
                var feedback = $('#passwordFeedback');
                
                if (password.length === 0) {
                    feedback.addClass('d-none');
                } else if (password.length < 8) {
                    feedback.removeClass('d-none').addClass('text-danger').text('รหัสผ่านต้องมีอย่างน้อย 8 ตัวอักษร');
                    $(this).addClass('is-invalid');
                } else {
                    feedback.removeClass('d-none').addClass('text-success').text('รหัสผ่านสามารถใช้ได้');
                    $(this).removeClass('is-invalid');
                }
            });

            // ======= 6. ตรวจสอบการยืนยันรหัสผ่าน =======
            $(document).on('keyup', '#registerConfirmPassword', function() {
                var password = $('#registerPassword').val();
                var confirmPassword = $(this).val();
                var feedback = $('#confirmPasswordFeedback');
                
                if (confirmPassword === '') {
                    feedback.addClass('d-none');
                } else if (password !== confirmPassword) {
                    feedback.removeClass('d-none').addClass('text-danger').text('รหัสผ่านไม่ตรงกัน');
                    $(this).addClass('is-invalid');
                } else {
                    feedback.removeClass('d-none').addClass('text-success').text('รหัสผ่านตรงกัน');
                    $(this).removeClass('is-invalid');
                }
            });

            // ======= 7. ส่งฟอร์มลงทะเบียน =======
            $(document).on('submit', '#registerForm', function(e) {
                e.preventDefault();
                
                var confirmId = $('#selectedUserId').val();
                var username = $('#registerUsername').val().trim();
                var password = $('#registerPassword').val();
                var confirmPassword = $('#registerConfirmPassword').val();
                
                // ===== ตรวจสอบ =====
                if (!confirmId) {
                    swal('แจ้งเตือน!', 'กรุณาเลือกชื่อผู้ใช้ก่อนลงทะเบียน', 'warning');
                    return false;
                }
                
                if (!username) {
                    swal('แจ้งเตือน!', 'กรุณากรอกชื่อผู้ใช้งาน', 'warning');
                    return false;
                }
                
                if (password.length < 8) {
                    swal('แจ้งเตือน!', 'รหัสผ่านต้องมีอย่างน้อย 8 ตัวอักษร', 'warning');
                    return false;
                }
                
                if (password !== confirmPassword) {
                    swal('แจ้งเตือน!', 'รหัสผ่านและการยืนยันรหัสผ่านไม่ตรงกัน', 'warning');
                    return false;
                }
                
                // ===== ส่งข้อมูลไปลงทะเบียน =====
                $.ajax({
                    url: BASE_PATH + 'register_api.php',
                    type: 'POST',
                    data: {
                        action: 'register',
                        confirm_id: confirmId,
                        username: username,
                        password: password,
                        confirm_password: confirmPassword
                    },
                    dataType: 'json',
                    timeout: 30000,
                    beforeSend: function() {
                        $('#btnRegisterSubmit').prop('disabled', true).text('กำลังลงทะเบียน...');
                    },
                    success: function(response) {
                        if (response.status === 'success') {
                            swal({
                                title: 'สำเร็จ!',
                                text: response.message,
                                type: 'success',
                                timer: 1500,
                                showConfirmButton: false
                            });
                            $('#btnRegisterSubmit').prop('disabled', false).text('ลงทะเบียน');
                            // กลับไปหน้า login
                            setTimeout(function() {
                                window.location.href = BASE_PATH + 'login.php';
                            }, 1500);
                        } else if (response.status === 'warning') {
                            $('#btnRegisterSubmit').prop('disabled', false).text('ลงทะเบียน');
                            swal('แจ้งเตือน', response.message, 'warning');
                        } else {
                            $('#btnRegisterSubmit').prop('disabled', false).text('ลงทะเบียน');
                            swal('เกิดข้อผิดพลาด!', response.message, 'error');
                        }
                    },
                    error: function(xhr, status, error) {
                        $('#btnRegisterSubmit').prop('disabled', false).text('ลงทะเบียน');
                        console.error('AJAX Error:', status, error);
                        swal('ระบบขัดข้อง!', 'เกิดข้อผิดพลาดในการเชื่อมต่อเซิร์ฟเวอร์', 'error');
                    },
                    complete: function() {
                        // ปิด spinner แน่นอน
                        $('#spin').hide();
                    }
                });
                
                return false;
            });
        });
    </script>
</body>

</html>

Zerion Mini Shell 1.0