前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >php 增删改操作 原

php 增删改操作 原

作者头像
tianyawhl
发布2019-04-04 15:30:48
5390
发布2019-04-04 15:30:48
举报
文章被收录于专栏:前端之攻略前端之攻略

最近在慕课网上学习php + ajax 实现表格的实时编辑,老师讲的非常好,感谢老师,按照老师的讲解,自己敲了一遍,收获很多。

代码语言:javascript
复制
<!doctype html>
<html>
	<head>
		<meta charset="utf-8">
		<title>可编辑表格DEMO</title>
		<link rel="stylesheet" href="../bootstrap/css/bootstrap.min.css" >
		<link rel="stylesheet" href="css/main.css" >
		
	</head>
	<body>
		<div class="container">
			<table class="data table table-bordered table-striped">
			   <thead>
			       <tr>
					   <th>1</th>
					   <th>2</th>
					   <th>3</th>
					   <th>4</th>
					   <th>5</th>
					   <th>6</th>
					   <th>7</th>
					   <th>8</th>
					   <th><a id="addBtn" class="optLink" href="javascript:;">增加</a></th>
				   </tr>
			   </thead>
			   <tbody>
			     
			   </tbody>
			</table>
		</div>
		<script type="text/javascript" src="../jQuery/jQuery-2.1.4.min.js"> </script>
		<script type="text/javascript" src="js/app.js"> </script>
	</body>
</html>
代码语言:javascript
复制
$(function() {
    var tbody = $("table.data tbody");
    var init_data_url = "data.php?action=init_data_list";
    $.get(init_data_url, function(data) {
        //打断点后可以在console 里面写data 回车显示data数据
        //debugger;
        //从后台获取所有的数据并用$.parseJSON转换成对象
        var row_items = $.parseJSON(data);
        for (i = 0; i < row_items.length; i++) {
            var data_dom = create_row(row_items[i]);
            tbody.append(data_dom);
        }
    })

    function delHandler() {

        var data_id = $(this).attr("dataid");
        var meButton = $(this);
        $.post("data.php?action=del_row", { dataid: data_id }, function(res) {
            alert(res);
            console.log(res == "ok");
            if (res == "ok") {
                $(meButton).parent().parent().remove();
            } else {
                alert("删除失败...");
            }
        });
    }

    function editHander() {
        alert("123");
        var data_id = $(this).attr("dataid");
        var meButton = $(this);
        var meRow = $(this).parent().parent();
        var editRow = $("<tr></tr>");
        debugger;
        for (var i = 0; i < 8; i++) {
            var editTd = $("<td><input type='text' class='from-control'/></td>");
            var v = meRow.find("td:" + 'eq(' + i + ')').html();
            editTd.find("input").val(v);
            editRow.append(editTd);
        }
        var opt_td = $("<td></td>");
        var saveButton = $("<a href='javascript:;'>保存 </a>");
        saveButton.click(function() {
            var currentRow = $(this).parent().parent();
            var input_fields = currentRow.find("input");
            var post_fields = {};
            for (var i = 0; i < input_fields.length; i++) {
                post_fields["col_" + i] = input_fields[i].value;
            }
            post_fields["id"] = data_id;
            $.post("data.php?action=edit_row", post_fields, function(res) {
                if (res = "ok") {
                    var newUpdateRow = create_row(post_fields);
                    currentRow.replaceWith(newUpdateRow);
                } else {
                    alert("数据更新失败...")
                }
            })
        })
        var cancelButton = $("<a href='javascript:;'>取消</a>");
        opt_td.append(saveButton);
        opt_td.append(cancelButton);
        editRow.append(opt_td);
        meRow.replaceWith(editRow);

    }

    function create_row(data_item) {
        var row_obj = $("<tr></tr>");
        for (var k in data_item) {
            if (k != "id") {
                var col_td = $("<td></td>");
                col_td.html(data_item[k]);
                row_obj.append(col_td);
            }
        }
        var delButton = $("<a href='javascript:;'>删除 </a>");
        delButton.attr("dataid", data_item["id"]);
        delButton.click(delHandler);
        var editButton = $("<a href='javascript:;'> 编辑</a>");
        editButton.attr("dataid", data_item["id"]);
        editButton.click(editHander);
        var opt_td = $("<td></td>");
        opt_td.append(delButton);
        opt_td.append(editButton);
        row_obj.append(opt_td);
        return row_obj;
    }
    $("#addBtn").click(function() {
        var addRow = $("<tr></tr>");
        for (i = 0; i < 8; i++) {
            var col_td = $("<td><input type='text' class='form-control' /></td>");
            addRow.append(col_td);
        }
        var col_opt = $("<td></td>");
        var confirmBtn = $("<a href='javascript:;'>确认 </a>");
        confirmBtn.click(function() {
            var currentRow = $(this).parent().parent();
            var input_fields = currentRow.find("input");
            var post_fields = {};
            for (i = 0; i < input_fields.length; i++) {
                post_fields["col_" + i] = input_fields[i].value;
            }
            $.post("data.php?action=add_row", post_fields, function(res) {
                if (res > 0) {
                    post_fields["id"] = res;
                    var postAddRow = create_row(post_fields);
                    currentRow.replaceWith(postAddRow);
                } else {
                    alert("插入失败...")
                }
            })

        })
        var cancelBtn = $("<a href='javascript:;'>取消 </a>");
        cancelBtn.click(function() {
            $(this).parent().parent().remove();
        })
        col_opt.append(confirmBtn);
        col_opt.append(cancelBtn);
        addRow.append(col_opt);
        tbody.append(addRow);
    })
})
代码语言:javascript
复制
<?php

$action = $_GET['action'];
switch ($action) {
    case 'init_data_list':
        init_data_list();
        break;

    case 'add_row':
        add_row();
        break;

    case 'del_row':
        del_row();
        break;

    case 'edit_row':
        edit_row();
        break;
}
function init_data_list() {
    $sql = "SELECT * FROM `et_data`";
    $query = query_sql($sql);
    while ($row = $query->fetch_assoc()) {
        $data[] = $row;
    }
    //把数据转换成json格式
    echo json_encode($data);
}
function del_row() {
    //echo "ok";
    $dataid = $_POST["dataid"];
    $sql = "DELETE FROM et_data WHERE id =" . $dataid;
    if (query_sql($sql)) {
        echo "ok";
    } else {
        echo "db error...";
    }
}
function add_row() {
    $sql = 'INSERT INTO et_data (c_a,c_b,c_c,c_d,c_e,c_f,c_g,c_h) VALUES(';
    for ($i = 0; $i < 8; $i++) {
        $sql.= '\'' . $_POST['col_' . $i] . '\', ';
    }
    $sql = trim($sql, ", ");
    $sql.= ')';
    if ($res = query_sql($sql, "SELECT LAST_INSERT_ID() as Ld")) {
        $d = $res->fetch_assoc();
        echo $d["Ld"];
    } else {
        echo "db error...";
    }
}
function edit_row() {
    $sql = "UPDATE et_data SET ";
    $id = $_POST["id"];
    unset($_POST["id"]);
    for ($i = 0; $i < 8; $i++) {
        $sql.= ' c_' . chr(97 + $i) . '= \'' . $_POST["col_" . $i] . '\', ';
    }
    $sql = trim($sql, ", ");
    $sql.= "WHERE id=" . $id;
    if (query_sql($sql)) {
        echo "ok";
    } else {
        echo "db error ...";
    }
}
function query_sql() {
    $mysqli = new mysqli("127.0.0.1", "root", "123", "demodb");
    $sqls = func_get_args();
    foreach ($sqls as $s) {
        $query = $mysqli->query($s);
    }
    $mysqli->close();
    return $query;
}
?>

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017/08/10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档