EasyUi---datagird 行数据修改

本文介绍了一个用户管理系统的设计与实现过程,包括前后端交互、数据验证、用户增删改查等功能。通过JavaScript和PHP实现了用户信息的动态管理和数据库操作。

UI展示:
这里写图片描述

参考代码:
前台UI:

<script type="text/javascript" charset="utf-8">
$(function(){ 
    var editRow = '';
    var permission = [{ "value": "管理员", "text": "管理员" }, { "value": "IT业务", "text": "IT业务" }];
    $('#user_table').datagrid({    
        url:'./USER/uGetInfo.php',
        border:false,
        fitColumns:true,
        singleSelect:true,
        pagination:true,
        idField:'id',
        pageSize:10,
        pageList:[10,15,20,25,100],
        columns:[[
            {field:'id',title:'序号',width:80},
            {field:'id_db',title:'数据库id',width:80,hidden:true},
            {field:'chinese_name',title:'中文名称',width:100,editor:{type:'validatebox',options:{required:true,validType:'strChinese'}}},
            {field:'username',title:'账号',width:100,editor:{type:'validatebox',options:{required:true,validType:'strEngNum'}}},
            {field:'password',title:'密码',width:300,editor:{type:'validatebox',options:{required:true}}},
            {field:'email',title:'邮箱',width:300,editor:{type:'validatebox',options:{required:true}}},
            {field:'permission',title:'权限',width:200,editor:{type:'combobox',options:{data: permission, valueField: "value", textField: "text",select:'admin'}}}
        ]],
        onAfterEdit:function(rowIndex, rowData, changes){           
            editRow = '';
            var new_line = JSON.stringify(rowData);
            $.ajax({
                type: "POST",
                cache: false,
                url: "./USER/uGetInfo.php",
                data: 'new_line=' + new_line,
                dataType:'json',
                success: function(msg){
                     if(msg.success){
                         $.messager.alert('恭喜你',msg.message);
                         $('#user_table').datagrid('reload',{});
                     }else{
                         $.messager.alert('错误',msg.message);
                     }
                }                           
            }); 
        }
    });
    /*************************点击添加用户******************************/
    $('#user_add').bind('click', function(){
        if(editRow == ''){
            $('#user_table').datagrid('appendRow',{});
            var rows = $('#user_table').datagrid('getRows');
            editRow = rows.length - 1;
            $('#user_table').datagrid('beginEdit',editRow);
        }else{
            $.messager.alert('警告','请先保存当前行记录然后才可以继续添加下一条记录!');  
        }
    });
    /*************************点击修改用户******************************/
    $('#user_edit').bind('click', function(){
            var row_select = $('#user_table').datagrid('getSelected');//返回的是被选中行的对象
            if(row_select == null){
                $.messager.alert('警告','请先选中需要修改行!','warning'); 
                return false;
            }else{
                var index_select = $('#user_table').datagrid('getRowIndex',row_select.id);//返回的是被选中行的索引
                editRow = index_select;
                $('#user_table').datagrid('beginEdit',editRow);
            }
    });
    /*************************点击删除用户******************************/
    $('#user_delete').bind('click', function(){
            var row_select = $('#user_table').datagrid('getSelected');//返回的是被选中行的对象
            if(row_select == null){
                $.messager.alert('警告','请先选中需要删除的行!','warning'); 
                return false;
            }else{
                $.messager.confirm('确认','您确认想要删除记录吗?',function(r){    
                    if (r){                         
                        $.ajax({
                            type: "POST",
                            cache: false,
                            url: "./USER/uGetInfo.php",
                            data: 'delete_line_id_db=' + row_select.id_db,
                            dataType:'json',
                            success: function(msg){
                                 if(msg.success){
                                     $.messager.alert('恭喜你',msg.message);
                                     $('#user_table').datagrid('reload',{});
                                 }else{
                                     $.messager.alert('错误',msg.message);
                                 }
                            }   
                        });
                    }    
                });  
            }
    });
    /*************************点击保存用户******************************/
    $('#user_save').bind('click', function(){
        $('#user_table').datagrid('endEdit',editRow);
    });
    /**************对validatebox控件正则表达式验证数据有效性扩展**************/
    $.extend($.fn.validatebox.defaults.rules, {    
        strChinese: {    
            validator: function(value){            
                var re = /[^\u4e00-\u9fa5]/;  
                if(re.test(value))
                    return false;  
                else
                    return true;   
            },    
            message: '只能输入中文!'
        },
        strEngNum: {    
            validator: function(value){            
                var re = /[^\w+$]/;  
                if(re.test(value))
                    return false;  
                else
                    return true;   
            },    
            message: '只能输入英文、数字或下划线!'
        }
    });  
});
</script>
<div class="it_model_top">
    <a id="user_add" href="#" class="easyui-linkbutton" style="margin-left: 10px;margin-right:10px;" data-options="iconCls:'icon-add'">增加</a>
    <a id="user_edit" href="#" class="easyui-linkbutton" style="margin-left: 10px;margin-right:10px;" data-options="iconCls:'icon-edit'">修改</a>
    <a id="user_delete" href="#" class="easyui-linkbutton" style="margin-left: 10px;margin-right:10px;" data-options="iconCls:'icon-cancel'">删除</a>
    <a id="user_save" href="#" class="easyui-linkbutton" style="margin-left: 10px;margin-right:10px;" data-options="iconCls:'icon-save'">保存</a>
</div>

<table id="user_table"></table>

后台:
uGetInfo.php

<?php 
//构造json对象,因为javascript处理类型为json
require_once '../../class/c_mysql.class.php';
if(isset($_POST['page']) && isset($_POST['rows'])){
    $page = $_POST['page'];
    $rows = $_POST['rows'];
    $limit_begain = ($page - 1) * $rows;
    $sql = "select * from user order by `id` asc limit $limit_begain,$rows";
    $sql_count = "select count(*) from user";
    get_json($sql,$sql_count);
}

/****************************添加和修改用户******************************/
if(isset($_POST['new_line'])){
    $add = json_decode($_POST['new_line']);
    $result = addNewAccount($add);
    $json = new json_message();
    if($result === false){//插入数据失败
        $json->success = false;
        $json->message = "USER/uGetInfo.php-->addNewAccount()-->操作数据库失败!";
    }
    if($result === true){//插入数据失败
        $json->success = true;
        $json->message = "新增用户成功!";
    }
    if($result === true && isset($add->id_db)){//插入数据失败
        $json->success = true;
        $json->message = "修改用户成功!";
    }
    echo json_encode($json);
}

/****************************删除用户****************************************/
if(isset($_POST['delete_line_id_db'])){
    $id_db = $_POST['delete_line_id_db'];
    $result = deleteAccount($id_db);
    $json = new json_message();
    if($result === false){//插入数据失败
        $json->success = false;
        $json->message = "USER/uGetInfo.php-->deleteAccount()-->操作数据库失败!";
    }
    if($result === true){//插入数据失败
        $json->success = true;
        $json->message = "删除用户成功!";
    }
    echo json_encode($json);
}

/****************************向user表中插入新用户******************************/
function addNewAccount($add){
    $chinese_name = $add->chinese_name;
    $username = $add->username;
    $password = sha1($add->password);
    $permission = $add->permission;
    $email = $add->email;
    $db = new c_mysql();   
    //判断是添加操作还是修改操作
    if(isset($add->id_db)){//如果传过来的参数有id_db属性,表示是修改数据的操作
        $id = $add->id_db;
        $sql = "update user set `chinese_name`='$chinese_name',`username`='$username',`password`='$password',`permission`='$permission',`email`='$email' where `id` = '$id'";
    }else{
        $sql = "insert into user(`chinese_name`,`username`,`password`,`permission`,`email`) values('$chinese_name','$username','$password','$permission','$email')";
    }
    $db->connect();
    $result = $db->query($sql);
    $db->close();
    return $result;//true:插入数据成功;false:插入数据失败
}

/****************************删除用户记录*********************************/
function deleteAccount($id_db){
    $db = new c_mysql();
    $sql = "delete from user where `id` = '$id_db'";
    $db->connect();
    $result = $db->query($sql);
    $db->close();
    return $result;//true:插入数据成功;false:插入数据失败
}

function get_json($sql,$sql_count){
    $db = new c_mysql();
    $db->connect();
    $db->query($sql);
    $db->close();
    $grid_data = array();
    $count = 1;
    while($row = $db->fetch_array()){
        $row['id_db'] = $row['id'];
        $row['id'] = $count;
        array_push($grid_data,$row);
        $count++;
    }
    //计算总数
    $db->connect();
    $db->query($sql_count);
    $db->close();
    $row = $db->fetch_row();
    $total = $row[0];
    //合并json
    $json = new json_data();
    $json->total = $total;
    $json->rows = $grid_data;
    echo json_encode($json);
}

class json_data{
    public $total = 10;
    public $rows = array();
}

class json_message{
    public $success = false;
    public $message = 'nothing';
}

?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值