Kiểm tra sự tồn tại của tên người dùng bằng ajax và php

Thảo luận trong 'PHP' bắt đầu bởi hongoctrien, 29 Tháng mười 2012.

  1. Offline

    hongoctrien

    • Friends

    Số bài viết:
    2.449
    Đã được thích:
    2.464
    Điểm thành tích:
    2.431
    [IMG]


    1. PHẦN HTML
    Phần này các bạn chỉ cần chú ý đến input text với id và name là "user_name" và 1 form bao bọc bên ngoài, các phần còn lại chỉ là râu ria trang trí cho đẹp thôi. Bên cạnh đó là 1 thẻ div với class="thongbao" để thông báo kết quả kiểm tra username đó có tồn tại hay không.

    Mã:
    <form method="post" name="fcheck" id="fcheck" action="">
    <img src="logo_2cwebvn.png" width="213" height="115" style="float:left;border:1px solid #EAEAEA;padding:10px;">
    <div style="margin-left:240px;">
        <label for="user_name">Tên người dùng:</label>
        <input type="text" name="user_name" id="user_name" autocomplete="off" value="">
        <div class="thongbao"></div>
        <input type="button" id="btn" name="btn" value="Send Now">
    </div>
    <div>
       
        <div class="lstcheck" style="color:#DB2E66; margin-top:30px; text-align:center;">
            Username tồn tại: 2cweb, 2cwebvn, chickchick
        </div>
    </div>
    </form>
    2. PHẦN CSS
    Để chi tiết cho phần CSS này mình chia ra các phần nhỏ để cho các bạn dễ đọc. Phần đầu tiên là mình phải reset style của trình duyệt và định dạng một chút cho trang.
    Mã:
    /*========= RESET STYLE TRÌNH DUYỆT & ĐỊNH DẠNG TRANG ========*/
    @charset "utf-8";
    *{margin:0px; padding:0px;}
    body {
        font-family: Arial, Helvetica, sans-serif;
        background: url(bg_2cwebvn.png) repeat;
        color:#DB2E66;
    } 
    Tiếp theo sẽ là định dạng cho cho các phần tử trong form:

    Mã:
    /*========= ĐỊNH DẠNG CÁC PHẦN TỬ TRONG FORM ========*/
    #fcheck{
        width:510px; margin:auto;
        border:1px solid #ccc;
        background:#FFFCF7; padding:10px;
    }
     
    .error { color: red; font-size: 14px; }
     
    .success { color: #006600; font-size: 14px; }
     
    label,#user_name { display:block; padding:5px 0px;}
     
    #user_name{width:200px;}
     
    h2{width:430px; margin:50px 0px 20px;}
     
    .thongbao{margin-top:5px;}
     
    #btn{
        width:90px; padding:6px;
        color:#006600; font-weight:bold;
        margin:10px 0px;
        border:1px solid #999999;
        }
    3. PHẦN AJAX
    Mã:
    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>


    Tiếp theo là code AJAX cho ứng dụng, ở đây mình dùng sự kiện blur() cho input user_name, sự kiện này xảy ra khi con chuột của mình không còn focus trong input user_name nữa. Và không cần nói gì nhiều mình đã có chú thích hết cho các bạn rồi đó, rất dễ hiểu phải không nào. :)

    Mã:
    <script type="text/javascript">
    $(document).ready(function() {
     
        // Sự kiện khi focus vào user_name
        $("#user_name").blur(function() {
           
            if($(this).val() != ''){
                // Gán text cho class thongbao trước khi AJAX response
                $(".thongbao").html('checking username...');
            }
            // Dữ liệu sẽ gởi đi
            var form_data = {action: 'check_user',  user_name: $(this).val()};
           
            $.ajax({
                type: "POST",              // Phương thức gởi đi
                url: "check.php",          // File xử lý dữ liệu được gởi
                data: form_data,            // Dữ liệu gởi đến cho url
                success: function(result) { // Hàm chạy khi dữ liệu gởi thành công
                    $(".thongbao").html(result);   
                }
            });
           
        });
     
    });
    </script>
    Phần code ajax trên sẽ link đến file check.php để xử lý kiểm tra username. Nội dung file check.php như sau:

    Mã:
    $action = $_POST['action']; // Lấy giá trị action
    if(!empty($_POST['user_name']) && $action == 'check_user')
    {
        // Lấy giá trị user_name
        $user = $_POST['user_name'];
       
        // Chuyển giá trị user_name thành chữ thường & gọi hàm kiểm tra
        username_exist(strtolower($user));
    }
     
    function username_exist($user)
    {
        // Mảng giá trị user_name đã tồn tại
        $user_arr = array("2cweb", "2cwebvn", "chickchick");
       
        // Kiểm tra user_name mình nhập vào có nằm trong mảng đó hay không?
        // User_name thuộc 1 giá trị trong mảng => user_name tồn tại
        if(in_array($user, $user_arr))
        {
            echo "<span class="error">Username: <strong>{$user}</strong> đã tồn tại, sorry.!!</span>";
        }
        else // Ngược lại user_name Ko tồn tại
        {
            echo "<span class="success">Username: <strong>{$user}</strong> Ko tồn tại, oh yeh..</span>";   
        }
    }
    Nguồn: http://2cweb.vn/news/php-mysql/kiem-tra-ten-nguoi-dung-ton-tai-voi-php-va-ajax-12-76.html
  2. Offline

    BigZero

    • Friends

    • ôi diễn đàn, ngày càng thấy buồn ra...
    Số bài viết:
    703
    Đã được thích:
    987
    Điểm thành tích:
    1.000
    mất máy rồi đâm chán tìm hiểu, cho xin đoạn code mà khi ta đăng nhập xong nó sẽ hiển thị tên người dùng ngay tại cái form đăng nhập ấy với Tr :D
  3. Offline

    tangvanbinh

    • Đội cứu hộ máy tính

    Số bài viết:
    449
    Đã được thích:
    197
    Điểm thành tích:
    140
    đơn giản là trong form login khi login mình gán cho nó cái biến $_SESSION[] . đăng nhập xong kiểm tra isset($_SESSION[]) tồn tại ko. nếu tồn tại thì xuất ra tên
  4. Offline

    hongoctrien

    • Friends

    Số bài viết:
    2.449
    Đã được thích:
    2.464
    Điểm thành tích:
    2.431
    Đơn giản thế thì đưa ajax vào làm gì :)
    SESSION khi load trang mới kiểm tra được tên đã tồn tại trong CSDL hay chưa, còn cái này nhập từ form xong, bấm kiểm tra là nó hiển thị kết quả luôn.
    Xem demo nhé
Tags: ajax, jquery, php, username

Chia sẻ trang này

Advertising: Linux system admin | nukeviet | nukeviet 4 | Upload ảnh miễn phí