PHP Ajax實(shí)現(xiàn)表格實(shí)時(shí)編輯
如果我們的對(duì)于一個(gè)表格中所有的數(shù)據(jù)都能在本頁(yè)進(jìn)行操作那該是多酷炫的一件事(用起來(lái)炒雞爽)!
用Ajax就可以實(shí)現(xiàn)這個(gè)功能啦。廢話不多說(shuō),下面貼出我寫(xiě)的demo吧哈哈。我用的TP框架(3.2)比較習(xí)慣啦。
首先是HTML代碼部分:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>AJAX實(shí)時(shí)編輯</title>
<script src="__PUBLIC__/jquery-1.7.2.min.js"></script>
</head>
<body>
<center>
<table border="1" width="1000" id="g_table">
<tr>
<!-- <th>ID</th> -->
<th>TAB1</th>
<th>TAB2</th>
<th>TAB3</th>
<th>TAB4</th>
<th><span onclick="add()">添加</span></th>
</tr>
<foreach name="tablist" item="vv">
<tr>
<!-- <td>{$vv.id}</td> -->
<input type="hidden" name="id" value="{$vv.id}">
<td>{$vv.tab1}</td>
<td>{$vv.tab2}</td>
<td>{$vv.tab3}</td>
<td>{$vv.tab4}</td>
<td><span onclick="del(this)" id="del">刪除</span><span onclick="edit(this)" id="edit">修改</span></td>
</tr>
</foreach>
</table>
</center>
</body>
<script>
var g_table = $("#g_table");
function add(){
var addRow = $("<tr></tr>");
g_table.append(addRow);
for(var i = 0;i < 4;i++){
var col_td = $("<td><input type='text' /></td>");
addRow.append(col_td);
}
var col_opt = $("<td></td>");
var confirmBtn = $("<a href='javascript:;'>確認(rèn)</a>");
var cancelBtn = $("<a href='javascript:;'>取消</a>");
cancelBtn.click(function(){
window.location.reload();
});
confirmBtn.click(function(){
var currentRow = $(this).parent().parent();
var input_files = currentRow.find("input");
var post_files = {};
for(var i = 0 , j = input_files.length;i < j;i++){
post_files['clo_' + i] = input_files[i].value;
}
// $.post("{:U('ajax/add')}",post_files,function(msg){
// debugger;
// })
$.ajax({
type: 'post',
url : "{:U('ajax/add')}",
data: {post_files},
success:function(msg){
alert(msg);
window.location.reload();
}
})
});
col_opt.append(confirmBtn);
col_opt.append(cancelBtn);
addRow.append(col_opt);
}
function del(obj){
var id = $(obj).parent().prev().prev().prev().prev().prev().val();
$.ajax({
type: 'post',
url: "{:U('ajax/del')}",
data: {id:id},
success:function(msg){
alert(msg);
}
})
$(obj).parent().parent().remove();
}
function edit(obj){
var id = $(obj).parent().prev().prev().prev().prev().prev().val();
for(var i = 1;i < 5;i++){
var temp = "<td><input type='text' value='" + $(obj).parent().parent().children().eq(i).html() + "'/></td>";
$(obj).parent().parent().children().eq(i).replaceWith(temp);
}
var confirmBtn1 = $("<span id='confirm'>確認(rèn)</span>");
var cancelBtn1 = $("<span onclick='back()'>取消</span>");
confirmBtn1.click(function(){
var currentRow = $(this).parent().parent();
var input_files = currentRow.find("input");
var post_files = {};
for(var i = 0 , j = input_files.length;i < j;i++){
post_files['clo_' + i] = input_files[i].value;
}
$.ajax({
type: 'post',
url : "{:U('ajax/edit')}",
data: {post_files:post_files,id:id},
success:function(msg){
alert(msg);
window.location.reload();
}
})
});
$(obj).prev().replaceWith(confirmBtn1);
$(obj).replaceWith(cancelBtn1);
}
function back(){
location.reload();
}
</script>
</html>
下面是控制器中的代碼:
<?php
namespace Home\Controller;
use Think\Controller;
class AjaxController extends Controller{
public function index(){
$tab = M('table');
$tablist = $tab->select();
$this->assign('tablist',$tablist);
$this->display();
}
public function del(){
$map['id'] = $_POST['id'];
$tab = M('table');
$info = $tab->where($map)->delete();
if($info){
$this->ajaxReturn("刪除成功");
}else{
$this->ajaxReturn("刪除失敗");
}
}
public function add(){
$map['tab1'] = $_POST['post_files']['clo_0'];
$map['tab2'] = $_POST['post_files']['clo_1'];
$map['tab3'] = $_POST['post_files']['clo_2'];
$map['tab4'] = $_POST['post_files']['clo_3'];
$tab = M('table');
$res = $tab->add($map);
if($res){
$this->ajaxReturn("添加成功");
}else{
$this->ajaxReturn("添加失敗");
}
}
public function edit(){
$id = $_POST['id'];
$map['tab1'] = $_POST['post_files']['clo_1'];
$map['tab2'] = $_POST['post_files']['clo_2'];
$map['tab3'] = $_POST['post_files']['clo_3'];
$map['tab4'] = $_POST['post_files']['clo_4'];
// dump($map);exit;
$tab = M('table');
$res = $tab->where('id='.$id)->save($map);
if($res){
$this->ajaxReturn("更新成功");
}else{
$this->ajaxReturn("更新失敗");
}
}
}
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!
- php+ajax實(shí)時(shí)刷新簡(jiǎn)單實(shí)例
- php+ajax實(shí)時(shí)輸入自動(dòng)搜索匹配的方法
- 值得分享的php+ajax實(shí)時(shí)聊天室
- PHP實(shí)現(xiàn)的消息實(shí)時(shí)推送功能【基于反ajax推送】
- AJAX 實(shí)時(shí)讀取輸入文本(php)
- PHP+Ajax實(shí)時(shí)自動(dòng)檢測(cè)是否聯(lián)網(wǎng)的方法
- php+ajax實(shí)現(xiàn)無(wú)刷新動(dòng)態(tài)加載數(shù)據(jù)技術(shù)
- php采用ajax數(shù)據(jù)提交post與post常見(jiàn)方法總結(jié)
- ajax處理php返回json數(shù)據(jù)的實(shí)例代碼
- php+jQuery ajax實(shí)現(xiàn)的實(shí)時(shí)刷新顯示數(shù)據(jù)功能示例
相關(guān)文章
使用AjaxFileUpload.js實(shí)現(xiàn)異步文件上傳示例
AjaxFilleUpload.js可以使得我們不用去管理Iframe的一系列操作,也不用影響我們的頁(yè)面結(jié)構(gòu),實(shí)現(xiàn)異步的文件提交2014-05-05
ajax跨域請(qǐng)求js拒絕訪問(wèn)的解決方法
這篇文章主要介紹了ajax跨域請(qǐng)求js拒絕訪問(wèn)的解決方法,需要的朋友可以參考下2014-05-05
利用AjaxControlToolkit實(shí)現(xiàn)百度搜索時(shí)的下拉列表提示詳細(xì)步驟
AjaxControlToolkit是一組控件的集合,可以實(shí)現(xiàn)自動(dòng)補(bǔ)充文本框,點(diǎn)擊文本框彈出日歷,加水印等Ajax效果等等,感興趣的朋友可以了解下啊,或許本文對(duì)你學(xué)習(xí)ajax有所幫助2013-02-02
將xml文件作為一個(gè)小的數(shù)據(jù)庫(kù),進(jìn)行學(xué)生的增刪改查的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇將xml文件作為一個(gè)小的數(shù)據(jù)庫(kù),進(jìn)行學(xué)生的增刪改查的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06
在Ajax中使用get和post所遇到的問(wèn)題及解決辦法
本文重點(diǎn)給大家介紹在ajax中使用get和post所遇到的問(wèn)題及解決辦法,及get請(qǐng)求和post請(qǐng)求的區(qū)別簡(jiǎn)單介紹,本文介紹的非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧2016-06-06
Ajax實(shí)現(xiàn)無(wú)刷新分頁(yè)實(shí)例代碼
這篇文章主要介紹了Ajax實(shí)現(xiàn)無(wú)刷新分頁(yè)實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03
基于Ajax技術(shù)實(shí)現(xiàn)文件上傳帶進(jìn)度條
這篇文章主要介紹了基于Ajax技術(shù)實(shí)現(xiàn)文件上傳帶進(jìn)度條的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06

