ajax 即点即改
2016-07-16 11:06
357 查看
1. 首先写一个表单提交 名为add.html
3.提交表单到后台控制器里面的 add_pro方法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <form action="__URL__/add_pro" method="post" enctype="multipart/form-data"> <table> <tr> <td>用户名</td> <td><input type="text" name="aa"></td> </tr> <tr> <td>性别</td> <td><input type="text" name="bb"></td> </tr> <tr> <td><input type="submit" value="添加"></td> <td></td> </tr> </table> </form> </body> </html> 2.通过Model <pre name="code" class="php"><?php namespace Home\Model; use Think\Model; class UserModel extends Model { protected $tableName = 'user'; //定义字段映射 protected $_map = array( 'aa' =>'u_name', // 把表单中aa映射到数据表的 'bb' =>'u_sex', // 把表单中的bb映射到数据表的u_sex字段 ); function doUpdate($data){ $u=M($this->tableName); $re=$u->save($data); return $re; } }
3.提交表单到后台控制器里面的 add_pro方法
<?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { /* * 显示添加页面 */ function index(){ $this->display("add"); } /* * 执行添加 */ function add_pro(){ //实例化model $user= D("User"); if($arr=$user->create()){ print_R($arr); }else{ echo "no"; } } /* * 列表 */ function show_list(){ //实例化表 $user= M("user"); $data=$user->select(); $this->assign("data",$data); $this->display(); } /* * 即点即改 */ function update(){ //调用model执行修改 $user=D("User"); $data=I("get."); $re=$user->doUpdate($data); if($re){ echo '1'; }else{ echo '-1'; } } }4.然后通过控制展示列表界面
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <center> <table border="1"> <tr> <td>用户名</td> <td>性别</td> <td>操作</td> </tr> <foreach name='data' item='v'> <tr> <td onclick="change({$v.u_id})"> <input type="text" value="{$v.u_name}" id="i{$v.u_id}" onblur="update({$v.u_id})" style="display:none"> <span id="s{$v.u_id}">{$v.u_name}</span> </td> <td>{$v.u_sex}</td> <td><a href="#">删除</a></td> </tr> </foreach> </table> </center> </body> </html> <script> // //点解td将文本框展示出来 并且将多出的内容清除 // function change(id){ // document.getElementById("i"+id).style.display='block'; // document.getElementById("s"+id).innerHTML=""; // } // // //鼠标移开文本框对数据库进行操作 修改 // function update(u_id){ // //获取要修改的值 // var u_name=document.getElementById("i"+u_id).value; // // //通过ajax // var ajax=new XMLHttpRequest(); // ajax.open("get","__URL__/u_id/"+u_id+"/u_name/"+u_name); // ajax.send(null); // ajax.onreadystatechange=function(){ // if(ajax.readyState==4&&ajax.status==200){ // alert(ajax.responseText); // }else{ // alert("失败"); // } // } // } //将文本框显示出来 function change(id){ document.getElementById("i"+id).style.display='block'; //清空span标签中的内容 document.getElementById("s"+id).innerHTML=""; } //当鼠标离开文本框 修改内容 function update(id){ var v=document.getElementById("i"+id).value; var ajax=new XMLHttpRequest(); ajax.open("get","__URL__/update/u_id/"+id+"/u_name/"+v); ajax.send(null); ajax.onreadystatechange=function(){ if(ajax.readyState==4&&ajax.status==200){ //alert(ajax.responseText); if(ajax.responseText=='1'){ //修改成功 把文本框去除 把修改后的值显示出来 document.getElementById("i"+id).style.display='none'; document.getElementById("s"+id).innerHTML=v; }else{ alert("失败"); } } } } </script>5.加载展示界面 show_list
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <center> <table border="1"> <tr> <td>用户名</td> <td>性别</td> <td>操作</td> </tr> <foreach name='data' item='v'> <tr> <td onclick="change({$v.u_id})"> <input type="text" value="{$v.u_name}" id="i{$v.u_id}" onblur="update({$v.u_id})" style="display:none"> <span id="s{$v.u_id}">{$v.u_name}</span> </td> <td>{$v.u_sex}</td> <td><a href="#">删除</a></td> </tr> </foreach> </table> </center> </body> </html> <script> // //点解td将文本框展示出来 并且将多出的内容清除 // function change(id){ // document.getElementById("i"+id).style.display='block'; // document.getElementById("s"+id).innerHTML=""; // } // // //鼠标移开文本框对数据库进行操作 修改 // function update(u_id){ // //获取要修改的值 // var u_name=document.getElementById("i"+u_id).value; // // //通过ajax // var ajax=new XMLHttpRequest(); // ajax.open("get","__URL__/u_id/"+u_id+"/u_name/"+u_name); // ajax.send(null); // ajax.onreadystatechange=function(){ // if(ajax.readyState==4&&ajax.status==200){ // alert(ajax.responseText); // }else{ // alert("失败"); // } // } // } //将文本框显示出来 function change(id){ document.getElementById("i"+id).style.display='block'; //清空span标签中的内容 document.getElementById("s"+id).innerHTML=""; } //当鼠标离开文本框 修改内容 function update(id){ var v=document.getElementById("i"+id).value; var ajax=new XMLHttpRequest(); ajax.open("get","__URL__/update/u_id/"+id+"/u_name/"+v); ajax.send(null); ajax.onreadystatechange=function(){ if(ajax.readyState==4&&ajax.status==200){ //alert(ajax.responseText); if(ajax.responseText=='1'){ //修改成功 把文本框去除 把修改后的值显示出来 document.getElementById("i"+id).style.display='none'; document.getElementById("s"+id).innerHTML=v; }else{ alert("失败"); } } } } </script>
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- Ajax
- $.ajax()方法详解
- jQuery ajax - ajax() 方法
- 使用Ajax实现异步用户名验证
- 使用ajax实现用户登录验证(升级版)
- Php Installing An Expansion
- rem : web app适配的秘密武器
- jquery高级应用之Deferred对象
- 关于浮动与清除浮动,你应该知道的
- 数组reduce方法的高级技巧
- php7 读取php.ini[4]