10/10/2018, 11:11

Sử dụng javascrip xử lý CSDL trên client

Ai cho mình biết có cách gì sử dụng Javascrip để xử lý CSDL trên client không?
Nếu biết cho mình ví dụ nhé.
Mình đang làm cái đăng kí tín chỉ. Mình muốn khi click vào checkbox thì nó kiểm tra xem môn đó học chưa?
Mình làm được bên server nhưng mình cần sử lý bên client và sử dụng javascrip để kiểm tra. Vậy ai có cách chỉ mình với nhé.
Cảm ơn nhiều !
manlivo viết 13:27 ngày 10/10/2018
Sử dụng ajax bạn nhé!
1024KB viết 13:20 ngày 10/10/2018
Cái này dùng ajax của jQuery cho nó tiện. Tham khảo:
Code:
//js code
//bắt sự kiện onclick của checkbox
$('input.tinchi').click(function (){
    //get dữ liệu của checkbox
    var data = $(this).val();
    //dùng phuơng thức post hoặc ajax của jQuery để gửi dữ liệu
    $.post('check.php', {value: data}, function (data){
        //dữ liệu trả về là một chuỗi json, ta eval nó
        //muốn biết eval là gì thì tìm hiểu thêm
        eval('var respon = ' + data + ';');
        if(respon.status){//
           alert(respon.msg);
        }//ngược lại là cái gì thì chắc tự biết.
    });
});

//php code: check.php
//kiểm tra xem có tồn tại giá trị $_POST ko?
if (isset($_POST['value'])) {
    check($_POST['value']);
}
function check ($value) {
   //xử lý
   if($exists) {  //giả sử dữ liệu trả về là có tồn tại
      $return = array('status' => false, 'msg' => 'Đã đăng ký');
   } else {
      $return = array('status' => true, 'msg' => 'Có thể đăng ký');
   }
   //trả dữ liệu về kiểu json cho dễ xử lý.
   echo json_encode($return);
}
PiLuan viết 13:21 ngày 10/10/2018
Hay quá, đúng cái mình đang cần ... thank bạn
gyarcier viết 13:28 ngày 10/10/2018
Client Database hiện nay mới chỉ có webkit hỗ trợ thôi, ngay cả FF cũng chưa có, vẫn phải dùng Gear để làm.

Tuy nhiên FF, Opera cũng đã hỗ trợ LocalStorage, một dạng database no-sql, dùng để lưu các giá trị ở dạng key:value, bạn có thể mã hóa cả 1 bảng dữ liệu thành chuỗi JSON rồi lưu xuống client mà xử lý.

Khi viết trang web Gycoder, tớ có tạo một đối tượng Gy.data dùng để xử lý dữ liệu dạng này trong trang, bạn tham khảo :

PHP Code:
    data : {        
        
set:function(dbkeyvalueisObj){
            var 
k=Gy.trim(key);
            var 
v=isObj?value:Gy.trim(value);
            if(
k!=''&&v!=''){
                if(
isObj){v=JSON.stringify(v)}
                
this.exc(db2kv);
            }
        },
        
get:function(dbkeyrevert){
            var 
k=Gy.trim(key);
            if(
k!=''){
                var 
r=this.exc(db1k);
                return !
revert?r:JSON.parse(r);
            }
            else{
                return 
'';
            }
        },
        
remove:function(dbkey){
            var 
k=Gy.trim(key);
            if(
k!=''){this.exc(db, -1k)}
        },
        
clear:function(db){
            
this.exc(db0);
        },
        
exc:function(databaseactionkeyvalue){
            try{
                var 
db=(database==1)?window.localStorage:window.sessionStorage;
                if(
db){
                    if(
action==0){
                        
db.clear();
                    }
                    else if(
action==-1){
                        
db.removeItem(key);
                    }
                    else if(
action==1){
                        return 
db.getItem(key);
                    }
                    else if(
action==2){
                        var 
k=Gy.trim(key);
                        var 
v=Gy.trim(value);
                        try{
                            
db.setItem(k,v);
                            return 
1;
                        }
                        catch(
e){
                            if(
e==QUOTA_EXCEEDDED_ERR){return 0}
                            else if(
e==NOT_SUPPORTED_ERR){return -1}
                            else{return -
2}
                        }
                    }
                }
            }
            catch(
e){}
        }
    }, 
nguyentrongtiep viết 13:22 ngày 10/10/2018
Trước tiên cảm ơn mọi người. Nhưng theo nguồn tin từ thầy giáo của mình thì ajax và Jquery là sử dụng bên sesver rồi (vì nó gọi file .php) nên mong mọi người giúp đỡ thêm.
Cảm ơn nhiều !
kiem_bo viết 13:25 ngày 10/10/2018
Được gửi bởi nguyentrongtiep
Trước tiên cảm ơn mọi người. Nhưng theo nguồn tin từ thầy giáo của mình thì ajax và Jquery là sử dụng bên sesver rồi (vì nó gọi file .php) nên mong mọi người giúp đỡ thêm.
Cảm ơn nhiều !
thầy bạn phán câu này thì nên coi lại kiến thức của thầy bạn rồi.
1024KB viết 13:11 ngày 10/10/2018
Được gửi bởi nguyentrongtiep
Trước tiên cảm ơn mọi người. Nhưng theo nguồn tin từ thầy giáo của mình thì ajax và Jquery là sử dụng bên sesver rồi (vì nó gọi file .php) nên mong mọi người giúp đỡ thêm.
Cảm ơn nhiều !
thế theo thầy phán thì cái gì kết nối csdl, javascript làm nốt chắc. Nếu thế thì bài này em chưa học .
Vô Thin viết 13:26 ngày 10/10/2018
Ai cho mình biết có cách gì sử dụng Javascrip để xử lý CSDL trên client không?
Câu này tối nghĩa cần chủ TOPIC giải thích thêm. JavaScript có cả chạy phía server và cả chạy phía client. Do đó phải cho biết trên server chạy gì? Còn "CSDL trên client" được hiểu như thế nào?

Mình làm được bên server nhưng mình cần sử lý bên client và sử dụng javascrip để kiểm tra. Vậy ai có cách chỉ mình với nhé.
Càng gây lúng túng hơn cho người trả lời vì cuối cùng họ không hiểu bài này liên quan đến Ajax hay là cần giải pháp như gyarcier đã trả lời ở trên.

Còn nếu chủ topic chưa rõ mình hỏi cái gì thì đi hỏi thầy giáo để làm rõ thêm. Nếu cả hai thầy trò đều mịt mù thì tự bóp... đi.

Những người chưa rõ câu hỏi và cũng chưa rõ câu trả lời khoan vào đây ném đá tùm lum, càng làm rối thêm vấn đề.
gyarcier
gyarcier viết 13:26 ngày 10/10/2018
Bác siêu mỏng sao lại đưa cái tên tui ở cuối cùng thế

Nói đến "CSDL trên client" thì phải nghĩ ngay đến Google Gear chứ bác. Sau khi Gear xuất hiện một thời gian, các trình duyệt webkit như Chrome, Safari đã tích hợp thẳng vào trình duyệt một cái gọi là HTML5 Client-side Database Storage, cách dùng hệt như Google Gear. Thế rồi Google ngừng phát triển plugin Gear luôn.

Một ví dụ mẫu về Client-side Database Storage, chủ thread có thể view source mà xem syntax :

http://www.webkit.org/demos/sticky-notes/

Firefox, Opera chưa hỗ trợ Client-side Database Storage, thế nên người ta vẫn tạm thời phải dùng Gear thay thế khi muốn thực hiện cùng yêu cầu.

Tuy nhiên LocalStorage thì thằng nào cũng đã hỗ trợ. Có điều nó là nosql
Bài liên quan
0