用Ajax写一个带模态框的增删改查

今天给大家讲如何用Ajax做增删改查。

基本操作先写HTML和CSS.

<body>
		<table>
			<tr style="background: #F2F7FF;">
				<td colspan="4">
					<button class="add" style="width: 200px;background:#009FFF;">+ 增加</button>					
				</td>
			</tr>
			<tr style="background: #F2F7FF;">
				<td>名字</td>
				<td>年龄</td>
				<td>分数</td>
				<td>操作</td>
			</tr>
			<!--<tr>
				<td>aa</td>
				<td>12</td>
				<td>88</td>
				<td>
					
					<button class="del">删除</button>
					<button class="alter">修改</button>
					<button class="view">查看</button>
				</td>
			</tr>
			<tr>
				<td>aa</td>
				<td>12</td>
				<td>88</td>
				<td>
					
					<button class="del">删除</button>
					<button class="alter">修改</button>
					<button class="view">查看</button>
				</td>
			</tr>
			<tr>
				<td>aa</td>
				<td>12</td>
				<td>88</td>
				<td>
					
					<button class="del">删除</button>
					<button class="alter">修改</button>
					<button class="view">查看</button>
				</td>
			</tr>
			<tr>
				<td>aa</td>
				<td>12</td>
				<td>88</td>
				<td>
					
					<button class="del">删除</button>
					<button class="alter">修改</button>
					<button class="view">查看</button>
				</td>
			</tr>
			<tr>
				<td>aa</td>
				<td>12</td>
				<td>88</td>
				<td>
					
					<button class="del">删除</button>
					<button class="alter">修改</button>
					<button class="view">查看</button>
				</td>
				
			</tr>-->
			
		</table>

写样式让表格变得美观一点。

<style>
			*{margin: 0;padding: 0;}
			td{
				border: 1px solid #ddd;
				color: #333;
				padding: 10px;
				 text-align:center
			}
			tr:hover{background:#F2F7FF ;}
			table{margin: auto;border-collapse: collapse;}
			button{
				padding: 5px 10px;
				border-radius: 6px;				
				border: #009FFF;
				color: #fff;
			}
			.del{
				background: #DA0059;
			}
			.alter{
				background: #00D8DA;
			}
			.view{
				background:#FBC703 ;
			}
</style>

写模态框。注意要写在最外面。

<!--增加模态框-->
		<div id="modal-dialog"class="add-modal">
			<div class="modal-content">				
				<div class="modal-body">
					<h3>增加</h3>
					<p>姓名<input type="text"></p>
					<p>年龄<input type="text"></p>
					<p>分数<input type="text"></p>
					<button id="resign" class="btn">取消</button>
					<button id="close" class="btn sure">确定</button>
				</div>

			</div>

		</div>
		<!--增加模态框-->
		<!--修改模态框-->
		<div id="modal-dialog"class="alter-modal">
			<div class="modal-content">				
				<div class="modal-body">
					<h3>修改</h3>
					<p>姓名<input type="text"></p>
					<p>年龄<input type="text"></p>
					<p>分数<input type="text"></p>
					<button id="resign" class="btn">取消</button>
					<button id="close" class="btn alter_ok">确定</button>
				</div>
			</div>
		</div>
		<!--修改模态框-->
		<!--查看-->
		<div id="modal-dialog"class="view-modal">
			<div class="modal-content">				
				<div class="modal-body">
					<h3>查看</h3>
					<p>姓名<input type="text"></p>
					<p>年龄<input type="text"></p>
					<p>分数<input type="text"></p>
					<button id="resign" class="btn">取消</button>
					<button id="close" class="btn ">确定</button>
				</div>
			</div>
		</div>

给模态框加上样式,让模态框也能动起来。

			
			.modal-content {
				width: 315px;
				height: 295px;
				margin: 100px auto;				
				padding: 1px 1px;
			}
			
			.modal-content .modal-body {
				padding: 52.5px 15px;
				background: #fff;
				border-radius: 6px;
			}
			.modal-content .modal-body .btn {
				width: 52px;
				height: 30px;
				display: inline-block;
				text-align: center;				
				color: #fff;
				cursor: pointer;
			    float: right;
			    margin: 10px;
			    background: #E00047;
			}
			.modal-content .modal-body input{
			    width: 220px;
			    height: 25px;
			    border-radius: 4px;
			    border: 1px solid #999;
			    padding: 2px 5px;
			    
			    
			}
			p{
				margin: 10px;
			}
			

当然方法不唯一,样式还有布局可以自己改。

接下来是关键。可以把HTML中表格的内容注释掉了。

在项目里建一个文件夹叫data,然后在文件夹中建一个json文件,名字最好跟着HTML的的名字来定,因为如果文件多起来就很难找,

然后json这样写

[
{"name":"小明","nian":"19","fen":"88"},
{"name":"小红","nian":"18","fen":"89"},
{"name":"小二","nian":"28","fen":"99"},
{"name":"小四","nian":"25","fen":"87"},
{"name":"小三","nian":"20","fen":"99"}
]
接着到了js部分。
$.ajax({
				   type:"get",
				url:"data/index1.json?"+Math.random(),
				
				success:function(res){
//					console.log(res)
					var str = ""
					for (var i=0;i<res.length;i++) {
						str+='<tr><td>'+res[i].name+'</td><td>'+res[i].nian+'</td><td>'+res[i].fen+'</td><td> <button class="del">删除</button> <button class="alter">修改</button> <button class="view">查看</button></td></tr>'
					}
					$("table").append(str)
				}
			});
数据导进去之后,就开始写各种功能了。
			
//			增加
				$(document).on("click", ".add", function() {
					$(".add-modal").show()
				})
				$(document).on("click", ".btn", function() {
					$(".add-modal").hide()
				})
				var addList = []
				$(document).on("click", ".sure", function() {
				addList = []
				$(".add-modal").find("input").each(function() {
					addList.push($(this).val())
				})
				var str = '<tr><td>'+addList[0]+'</td><td>'+addList[1]+'</td><td>'+addList[2]+'</td><td> <button class="del">删除</button> <button class="alter">修改</button> <button class="view">查看</button></td></tr>'
				$("table").append(str)
			})
//				删
				$(document).on("click", ".del", function() {
				$(this).parents("tr").remove()
			})
//				修改
			$(document).on("click", ".alter", function() {
				$(".alter-modal").show()
							})
			$(document).on("click", ".btn", function() {
					$(".alter-modal").hide()
				})
			var userList = []
			var _this = null
			$(document).on("click", ".alter", function() {
				_this = $(this).parents("tr")
				userList = []
				$(this).parent().siblings("td:not(:eq(3))").each(function() {
					userList.push($.trim($(this).text()))
				})
				var oTr = $.trim($(this).parent().siblings().eq(3).text())
				$(".alter-modal").find("select").find("option[value=" + oTr + "]").prop("selected", true)

				$(".alter-modal").find("input").each(function(i) {
					$(this).val(userList[i])
				})

			})

			var changeList = []
			$(".alter_ok").click(function() {
				changeList = []
				$(this).parents(".modal-content").find("input").each(function() {
					changeList.push($(this).val())
				})
				var oVal = $(".alter-modal").find("select").val()

				_this.find("td:eq(4)").text(oVal)

				_this.find("td:not(:eq(3))").each(function(i) {
					$(this).text(changeList[i])
				})
			})
			//查看
			$(document).on("click", ".view", function() {
				$(".view-modal").show()
							})
			$(document).on("click", ".btn", function() {
					$(".view-modal").hide()
				})
			var userList = []
			var _this = null
			$(document).on("click", ".view", function() {
				_this = $(this).parents("tr")
				userList = []
				$(this).parent().siblings("td:not(:eq(3))").each(function() {
					userList.push($.trim($(this).text()))
				})
				var oTr = $.trim($(this).parent().siblings().eq(3).text())
				$(".view-modal").find("select").find("option[value=" + oTr + "]").prop("selected", true)

				$(".view-modal").find("input").each(function(i) {
					$(this).val(userList[i])
				})

			})
				

效果图




方法不唯一,我只是简单的把效果做出来,具体还需要改进。


猜你喜欢

转载自blog.csdn.net/weixin_42535823/article/details/80873787