1. 程式人生 > >即點即改

即點即改

  雙擊單元格時獲取單元中的欄位、值和id,將單元格替換成input框,再利用失焦事件獲取新值替換舊值,利用ajax方式將獲取的欄位、id和新值傳到控制器,進行拼接,實現修改。

<?php
namespace app\index\controller;
use think\Controller;
use think\Db;
use think\Request;
class Update extends Controller
{
    //展示資料
    public function show(){
        $data = Db::table('yun')->select
(); return view("show",['data'=>$data]); } //執行修改 public function update(){ $fd = Request::instance()->param('fd'); $v = Request::instance()->param('v'); $id = Request::instance()->param('id'); $data[$fd]=$v; $a = Db::table('yun')->where
('id',$id)->update($data); if($a){ return 0; }else{ return 1; } } }
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>展示資料</title>
</head>
<body>
<center>
    <table border="
1"> <tr> <td>ID</td> <td>姓名</td> <td>年齡</td> <td>地址</td> </tr> {volist name="data" id="vo"} <tr class="{$vo.id}" id="{$vo.id}"> <td >{$vo.id}</td> <td fd="name">{$vo.name}</td> <td fd="age">{$vo.age}</td> <td fd="address">{$vo.address}</td> </tr> {/volist} </table> </center> </body> </html> <script src="/static/js/jquery.js"></script> <script> $("td").dblclick(function(){ //獲取td中的值 var td_val=$(this).html(); //獲取雙擊過的欄位 var fd_val=$(this).attr('fd'); //獲取id var id_val=$(this).parents("tr").attr("id"); //將td框變成input框 $(this).html("<input type='text' value='"+td_val+"' id='fj'>"); $("#fj").blur(function(){ //獲取要修改的值 var new_val = $(this).val(); $(this).parents("td").html(new_val); $.ajax({ method:"POST", url:"{:url('update/update')}", data:{ id:id_val, fd:fd_val, v:new_val } }).done(function(msg){ if(msg==0){ alert("修改成功"); }else{ alert("修改失敗"); } }); }); }); </script>