php 增删改操作

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

<!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>
$(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);
    })
})
<?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;
}
?>

 
 

 

转载于:https://my.oschina.net/u/2612473/blog/1505981

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当需要在表单中添加增删功能时,你可以使用 PHP 来处理表单的提交,并根据用户的操作进行相应的增加、删除和修操作。下面是一个简单的示例代码: ```php <?php // 连接数据库 $dsn = 'mysql:host=localhost;dbname=your_database_name'; $username = 'your_username'; $password = 'your_password'; $db = new PDO($dsn, $username, $password); // 处理表单提交 if ($_SERVER['REQUEST_METHOD'] === 'POST') { // 添加数据 if (isset($_POST['add'])) { $name = $_POST['name']; // 执行插入操作 $sql = "INSERT INTO your_table_name (name) VALUES (:name)"; $stmt = $db->prepare($sql); $stmt->bindParam(':name', $name); $stmt->execute(); } // 删除数据 if (isset($_POST['delete'])) { $id = $_POST['id']; // 执行删除操作 $sql = "DELETE FROM your_table_name WHERE id = :id"; $stmt = $db->prepare($sql); $stmt->bindParam(':id', $id); $stmt->execute(); } // 更新数据 if (isset($_POST['update'])) { $id = $_POST['id']; $name = $_POST['name']; // 执行更新操作 $sql = "UPDATE your_table_name SET name = :name WHERE id = :id"; $stmt = $db->prepare($sql); $stmt->bindParam(':id', $id); $stmt->bindParam(':name', $name); $stmt->execute(); } } // 获取数据 $sql = "SELECT * FROM your_table_name"; $stmt = $db->query($sql); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); ?> <!-- 显示表单 --> <form method="POST" action=""> <input type="text" name="name" placeholder="名称" required> <button type="submit" name="add">添加</button> </form> <!-- 显示数据 --> <table> <tr> <th>ID</th> <th>名称</th> <th>操作</th> </tr> <?php foreach ($rows as $row): ?> <tr> <td><?php echo $row['id']; ?></td> <td><?php echo $row['name']; ?></td> <td> <form method="POST" action=""> <input type="hidden" name="id" value="<?php echo $row['id']; ?>"> <input type="text" name="name" value="<?php echo $row['name']; ?>" required> <button type="submit" name="update">更新</button> <button type="submit" name="delete">删除</button> </form> </td> </tr> <?php endforeach; ?> </table> ``` 请注意替换代码中的以下部分以符合你的实际情况: - `your_database_name`:你的数据库名称 - `your_username`:你的数据库用户名 - `your_password`:你的数据库密码 - `your_table_name`:你的表名 这是一个基本的示例,你可以根据自己的需求进行修和扩展。同时,建议在实际使用中进行适当的输入验证和安全性措施,以防止 SQL 注入等安全问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值