`
niqingyang
  • 浏览: 44195 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

tablelist.js - ajax删除列表上的数据

    博客分类:
  • YII
阅读更多

tablelist.js对删除列表上的记录进行封装,通过调用remove函数配合后台php代码可以移除列表上的数据。

 

一、使用

1.页面引入tablelist.js,默认情况下,布局文件main.tpl已经引入。

2.页面初始化tablelist并使用:

    删除按钮绑定业务ID:object_id

<a href="javascript:void(0);" object_id="{$object.attr_id}" class="del border-none">删除</a>

    javascript绑定事件

<script type="text/javascript">
	var tablelist;
	$().ready(function() {
		tablelist = $("#table_list").tablelist();
		// 删除记录
		$("body").on('click', '.del', function() {
			var id = $(this).attr("object_id");
			tablelist.remove({
				confirm: '您确定删除这条记录吗?',
				url: 'delete',
				data: {
					id: id
				}
			});
		});
	});
</script>

 3.后台php编写对应的action,例如:

	public function actionDelete ()
	{
		$id = Filter::post('id', 0);
		
		try
		{
			AttributeDo::delete(0);
			return Result::json([
				'message' => '删除成功!'
			]);
		}
		catch(\Exception $e)
		{
			return Result::exception($e)->toJson();
		}
	}

 或者:

	/**
	 * 删除
	 */
	public function actionDelete ()
	{
		$id = Filter::post('id', 0);
		
		$count = Brand::deleteAll([
			'brand_id' => $id
		]);
		if($count == 1)
		{
			// 设置消息
			return Result::success([
				'message' => lang('delete-brand-success')
			])->toJson();
		}
		else
		{
			// 设置消息
			return Result::error([
				'message' => lang('delete-brand-fail')
			])->toJson();
		}
	}

 

二、代码说明:

tablelist.remove(options)的代码为:

// AJAX删除
	function remove(options) {

		var settings = this;

		var defaults = {
			url: url,
			type: 'POST',
			data: {

			},
			dataType: 'json',
			success: function(result) {

				if (result.code == 0) {
					var value = result.data;
					// 重新加载
					settings.load();
					// 如果有提示信息则显示
					if (result.message && $.trim(result.message) != '') {
						if ($.isFunction($.msg)) {
							$.msg(result.message, {
								icon: 1
							});
						} else {
							alert(result.message);
						}
					}
				} else if (result.message) {
					// 显示错误消息
					if ($.isFunction($.alert)) {
						$.alert(result.message, {
							icon: 2
						});
					} else {
						alert(result.message);
					}
				}

				// Ajax加载结束
				is_ajax_loading = false;
			}
		};

		options = $.extend(defaults, options);

		// POST提交需要获取CSRF
		if (options.type.toLowerCase() == 'post' && options.data['_csrf'] == undefined) {
			if ($("[name='_csrf']").size() > 0) {
				options.data['_csrf'] = $("[name='_csrf']:first").val();
			} else {
				var name = $.getCsrfParam();
				var value = $.getCsrfToken();
				options.data[name] = value;
			}
		}

		var localurl = location.pathname.substring(0, location.pathname.lastIndexOf("/") + 1);
		var url = options.url;

		if (url && url.indexOf("./") == 0) {
			url = localurl + url.substring(1);
		} else if (url && url.indexOf("/") != 0) {
			url = localurl + url;
		} else if (url == undefined || url == null || $.trim(url) == '') {
			url = localurl + url;
		}

		var confirm = options.confirm;

		if (confirm == undefined) {
			// 防止频繁点击重复提交
			if (is_ajax_loading) {
				return;
			}

			ajax(options);
		} else {
			if ($.isFunction($.confirm)) {
				$.confirm(confirm, {
					icon: 3
				}, function(index) {
					ajax(options);
				});
			} else if (confirm(confirm)) {
				ajax(options);
			}
		}
	}

 

 

二、参数说明:

tablelist.remove(options)中:

1.remove函数执行的是ajax调用,为了方便自定义,所以参数options为jquery中ajax所需要的参数,默认值如上面的代码可见。

2.一般仅需要三个参数:

url:指向删除的action,默认在当前页面的控制器内部,如果以“/”开头则指向网站根目录

data:后台删除数据需要的参数,类型同$.ajax参数的data,为对象类型

confirm:额外的参数,可以自定义删除前的询问提示,如果不为空则自动提示,为空则跳过。

type:表单的提交类型,默认值为“POST”

 

3.后台PHP传来的Result对象中,可以设置Result.data.icon设置前台显示图标,成功默认为“success”,失败默认为“error”;其他值包括(前台根据字符串来获取图标代码):

var icons = ['warning'=>0, 'success'=>1, 'error'=>2, 'info'=>0];

 

 

其他的参数请参考jquery.ajax的API

 

三、快速开发

 

1.可以通过nii快速生成列表页面的相关代码


 
 

 

 

 

 

 

 

 

 

  • 大小: 73.3 KB
  • 大小: 45.9 KB
  • 大小: 34.7 KB
  • 大小: 35 KB
分享到:
评论

相关推荐

    jquery.jqGrid-4.4.3

    1. 数据绑定:jqGrid 支持从服务器动态加载数据,通过 AJAX 进行异步通信,实现数据的实时更新。 2. 数据排序:用户可以点击列头对数据进行升序或降序排序,jqGrid 自动处理排序逻辑。 3. 数据筛选:提供多种筛选...

    js删除表格本行列表

    在JavaScript编程中,"js删除表格本行列表"这一主题涉及到网页交互中的动态数据操作,尤其是在处理用户界面(UI)与后端数据库之间的数据同步。在这个场景中,我们通常会用到HTML表格来展示从数据库获取的数据,并...

    ajax从后台读json数据,jquery在页面简析

    3. **在页面上展示数据**:使用jQuery操作DOM元素,可以轻松地在页面上动态添加、修改或删除元素。以表格为例,可以遍历JSON数据,创建新的表格行并插入到表格中: ```javascript success: function(data) { var ...

    ajax实现无刷新删除

    "redirectAction"&gt;ajaxno&lt;/result&gt; &lt;/action&gt; &lt;/package&gt; &lt;/struts&gt; 四、创建 JSP 页面:AjaxNoFresh1.jsp 在页面中引入 prototype.js 和 application.js,并编写 JavaScript 代码来处理 AJAX 请求。 ```html &lt;!...

    spring_MVC源码

    本文主要介绍使用注解方式配置的spring mvc,之前写的spring3.0 mvc和rest小例子没有介绍到数据层的内容,现在这一篇补上。下面开始贴代码。 文中用的框架版本:spring 3,hibernate 3,没有的,自己上网下。 先说...

    jsp 选定要删除的

    在JavaServer Pages (JSP) 中,"选定要删除的"这一主题通常涉及到网页表单交互,特别是用户选择多项数据后进行批量删除的操作。这里我们将深入探讨如何实现这样的功能,包括HTML表单的设计、JavaScript的预处理、...

    jQuery+Ajax+PHP+MySQL实现分类列表管理[参照].pdf

    【jQuery+Ajax+PHP+MySQL实现分类...&lt;script type="text/javascript" src="js/jNotify.jquery.js"&gt; &lt;script type="text/javascript" src="js/jquery.alert.js"&gt; &lt;script type="text/javascript" src="js/global.js"&gt; ...

    对layui中table组件工具栏的使用详解

    在layui中,table组件是一个非常实用的功能,用于展示数据列表。本文将详细讲解如何在layui中使用table组件的工具栏功能。 首先,我们来看一下layui table组件工具栏的基本使用步骤: 1. 引入layui资源:在HTML...

    基于javaweb 的bootstrap table使用案例源码下载

    在本文中,我们将深入探讨如何在JavaWeb项目中利用Bootstrap Table和Ajax技术来实现动态的、功能丰富的数据展示。Bootstrap Table是一种流行的前端组件,它允许开发者轻松创建具有排序、筛选、分页等功能的表格。...

    bootstrap jquery dataTable 异步ajax刷新表格数据的实现方法

    在本文中,我们将深入探讨如何使用Bootstrap、jQuery和DataTable库实现异步AJAX来刷新表格数据的方法。这个功能常用于动态更新数据展示,无需页面整体刷新,提高用户体验。 首先,让我们了解一下涉及的关键技术和...

    vue使用ajax获取后台数据进行显示的示例

    在这个示例中,Vue.js 被用来通过Ajax技术从后台获取数据并将其显示在页面上。Ajax(Asynchronous JavaScript and XML)是一种创建动态网页的技术,它允许在不重新加载整个页面的情况下与服务器交换数据并更新部分...

    纯javascript增加删除表格行

    在本主题中,我们将深入探讨如何使用纯JavaScript来实现表格(table)的行增删功能,这对于创建数据管理界面或者用户输入表单的网页特别有用。 首先,我们需要了解HTML中的`&lt;table&gt;`元素。`&lt;table&gt;`是用于展示结构...

    HTML5 的数据列表 DEMO,支持排序/分页/选择

    5. **操作**:除了基本的展示,这个表格列表可能还包含了其他操作,如编辑、删除或导出数据等,这些都是通过按钮或链接触发AJAX请求,与服务器进行交互。 6. **响应式设计**:作为Bootstrap的一部分,这个表格列表...

    GT-GRID插件下载

    - 多种数据源:可以连接到不同的数据源,如JSON、XML、AJAX等,灵活适应不同后端环境。 2. **使用方法** - 引入资源:首先需要在HTML文件中引入jQuery库和GT-GRID的相关CSS及JS文件。 - 创建表格:通过HTML定义...

    jQuery+Ajax+PHP+MySQL实现分类列表管理归类.pdf

    $list .= "&lt;li rel='".$row['cid']."'&gt;删除'&gt;&lt;/span&gt;&lt;span class='edit' title='编辑'&gt;&lt;/span&gt;&lt;span class='txt'&gt;".$row['title']."&lt;/span&gt;&lt;/li&gt;"; ``` 生成的列表项被插入到页面的`&lt;ul id="catalist"&gt;`中。同时,...

    用js创建form表单并提交.docx

    8. **数据绑定**:`&lt;table id="list" data-height="500" data-pagination="true" data-search="false"&gt;`是Bootstrap Table插件的用法,它允许动态加载数据、分页、搜索等功能。`data-field`属性用于绑定数据列。 9....

    jqgrid 3.5 beta

    - **添加/删除记录**:提供添加新记录和删除现有记录的功能,方便数据管理。 - **表头菜单**:列标题可配置右键菜单,提供排序、搜索等操作。 - **多语言支持**:可以轻松切换不同的语言环境。 - **自定义列**:可以...

    JS dom节点实现移上、移下的效果(表格).zip

    在JavaScript中,DOM(Document Object Model)节点是用于操作HTML或XML文档的一种接口。通过DOM,我们可以选择页面上的特定元素,改变...这通常涉及Ajax请求或现代前端框架(如React、Vue或Angular)的数据绑定机制。

Global site tag (gtag.js) - Google Analytics