动态获取新增的数据+项目实例介绍

效果演示:


ok,我们一般做项目的时候会经常遇到这样的情况,就是数据是不停的新增的,但是数据我们也是需要实时获取的,这个时候我们需要的是将数据实时的拿到,或者是用户停止操作的时候我们将数据点击发布或者是一个操作的按钮将数据传递给后端。

这是一个真实的例子,但是没有做美化,包括提示信息也是没有做任何的美化的,包括里面的ajax也去掉了。不过这些都不重要,重要的是我们可以看效果,拿数据。

我们看h5代码:

<div class="templatemo-content-container">
			<button class="btn btn-default" style="background: #39ADB4;width: 10rem;margin-left: 1rem;font: '微软雅黑';color: white;" id="addUser" οnclick="addRow();">添加</button>
			<button class="btn btn-default" style="background: #39ADB4;width: 10rem;margin-left: 1rem;font: '微软雅黑';color: white;" id="release" οnclick="releaseClick();">发布</button>
		</div>

ps:不要纠结我为什么用来一样的css却不直接抽出来,只是写一个例子而已,这些细节就不要在意了。

js代码:

var i = 0;
	var rowFlg = [] //记录目前有几行
	//添加行
	function addRow() {
		if(rowFlg.length<5){
			i++;
			//加一行,往数组里增加一个,用来判断大小 
			rowFlg.push(i)
			var rowTem = '<tr class="tr_' + i + '">'
				//+'<td>' + i + '</td>'
				+ '<td><input class="form-control" style="width: 20rem;height: 100%;" type="Text" id="txt' + i + '" /></td>'
				+ '<td> <a href="#" class="templatemo-edit-btn" οnclick=delRow('+i+') >删除</a></td>'
				+ '</tr>';
			$("#table tbody:last").append(rowTem);
		}else{
			/*最多的一次是五个*/
			alert("一次最多操作5条");
		}
	}
	//删除行
	function delRow(_id) {
		$("#table .tr_"+_id).hide();//删除此行
		document.getElementById("txt" + _id).value='';//清楚此行的内容
		//删掉一个,我是删除的第一位,只用来判断他的长度是否大于5,不可再增加的时候才用到,所以删掉任意一个就可以
		rowFlg.splice(0,1);
	}
	//提交代码的时候是调用的函数
	function releaseClick() {
		var units =[];
		for( var j=1;j<=i;j++){
			if($("#" + "txt" + j).val()+'' !=='' ){
				units.push($("#" + "txt" + j).val());
			}
		}
		console.log("拿到的数据是:"+units);
		 /*$.ajax({
				type:"post",
				url:"/sys/units",
				data : JSON.stringify(units),
                dataType:"json",
				contentType:"application/json",
                async:false,
				success:function(data){ 
					if(data.code == 200){
						layer.msg('发布成功!', {
		  					}, function(){
		  					//跳转的URL重定向到新的页面,这里是直接跳转到原页面
		  					window.location.href='cooperative_unit.html';
		  					}); 
					}
					else{
						layer.msg(data.message);
					}
				}
			});  */
	}

上面可以看出来,这里是动态画出来的表格,当然您可以使用组件画,这些不重要,我是直接拼字符串画的,这里具体的代码不需要解释了吧,这里如果哪一行或者哪里没看明白的,可以下方留言,我会解释的。


下面是一个使用 Vue.js 和 Mock.js 实现新增、编辑和删除表格数据的示例。 首先,确保你已经安装了 Vue.js 和 Mock.js。然后,创建一个 Vue 组件,包含一个表格和相应的按钮用于新增、编辑和删除数据。 HTML 模板代码如下: ```html <div id="app"> <table> <thead> <tr> <th>Name</th> <th>Age</th> <th>Email</th> <th>Action</th> </tr> </thead> <tbody> <tr v-for="(item, index) in items" :key="index"> <td>{{ item.name }}</td> <td>{{ item.age }}</td> <td>{{ item.email }}</td> <td> <button @click="editItem(index)">Edit</button> <button @click="deleteItem(index)">Delete</button> </td> </tr> </tbody> </table> <form @submit.prevent="addItem" v-show="showForm"> <input type="text" v-model="formData.name" placeholder="Name"> <input type="number" v-model="formData.age" placeholder="Age"> <input type="email" v-model="formData.email" placeholder="Email"> <button type="submit">Add</button> </form> <button @click="showForm = true">Add New</button> </div> ``` JavaScript 代码如下: ```javascript // 引入 Mock.js 库 const Mock = require('mockjs'); // 使用 Mock.js 拦截 AJAX 请求并返回随机数据 Mock.mock('/api/items', 'get', { 'items|5-10': [{ 'name': '@cname', 'age|18-60': 0, 'email': '@email' }] }); // 创建 Vue 实例 new Vue({ el: '#app', data() { return { items: [], showForm: false, formData: { name: '', age: '', email: '' }, editingIndex: -1 }; }, mounted() { // 发送 AJAX 请求获取表格数据 this.fetchItems(); }, methods: { fetchItems() { // 模拟发送 AJAX 请求 axios.get('/api/items') .then(response => { this.items = response.data.items; }) .catch(error => { console.error(error); }); }, addItem() { // 模拟发送 AJAX 请求 axios.post('/api/items', this.formData) .then(() => { this.fetchItems(); this.resetForm(); }) .catch(error => { console.error(error); }); }, editItem(index) { this.editingIndex = index; this.formData = { ...this.items[index] }; this.showForm = true; }, updateItem() { // 模拟发送 AJAX 请求 axios.put(`/api/items/${this.editingIndex}`, this.formData) .then(() => { this.fetchItems(); this.resetForm(); }) .catch(error => { console.error(error); }); }, deleteItem(index) { // 模拟发送 AJAX 请求 axios.delete(`/api/items/${index}`) .then(() => { this.fetchItems(); }) .catch(error => { console.error(error); }); }, resetForm() { this.formData = { name: '', age: '', email: '' }; this.editingIndex = -1; this.showForm = false; } } }); ``` 在上述代码中,我们使用 Mock.js 来拦截 `/api/items` 的 GET 请求,并返回随机生成的数据。你可以根据需要修改这个接口的 URL 和响应数据。 注意,在实际的项目中,你需要使用真实的后端 API 来处理新增、编辑和删除数据的请求,并更前端的表格数据。这里的代码只是一个简单的示例,使用 Mock.js 模拟这些操作。 当你运行这个示例时,你将看到一个包含表格和按钮的界面。点击 "Add New" 按钮将显示一个表单,你可以在表单中输入数据并点击 "Add" 按钮来新增一行数据。点击表格中的 "Edit" 按钮可以编辑对应行的数据,点击 "Delete" 按钮可以删除对应行的数据。 请注意,示例中使用的是 Mock.js 来模拟 AJAX 请求和返回随机数据,实际项目中需要替换成真实的后端接口。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是悟能了

阅读就是对我最大的支持,感谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值