博客列表 >表格自动生成器-2018年4月16日0时15分发布(13日作业)

表格自动生成器-2018年4月16日0时15分发布(13日作业)

lilove的博客
lilove的博客原创
2018年04月16日 00:27:29786浏览

主题:

利用ajax方式提交数据到服务器上的php程序处理,然后返回html表格。

实现效果:

0413作业效果.jpg

前端代码实例:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>表格生成器</title>
	<!-- Bootstrap 核心 CSS 文件 -->
	<link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<body style="padding-top:70px">
	<div class="col-md-12" id="headbox">
		<nav class="navbar navbar-default navbar-fixed-top">
		  <div class="container">
		    <h3>XXXXXX管理系统</h3>
		  </div>
		</nav>
	</div>
	<div class="container-fluid">
		<div class="col-xs-3 list-group">
			<a href="#" class="list-group-item disabled">Cras</a>
			<a href="#" class="list-group-item">Dapibus</a>
			<a href="#" class="list-group-item">Morbi leo</a>
			<a href="#" class="list-group-item">Porta ac</a>
			<a href="#" class="list-group-item">Vestibulum</a>
		</div>
		<div class="col-xs-9">
			<div class="form-group">
				<label for="title">表格标题:</label>
				<input type="text" class="form-control" id="title" name="title" placeholder="请输入标题">
			</div>
			<div class="form-group">
				<label for="rows">表格行数:</label>
				<input type="text" class="form-control" id="rows" name="rows" placeholder="请输入行数">
			</div>
			<div class="form-group">
				<label for="cols">表格列数:</label>
				<input type="text" class="form-control" id="cols" name="cols" placeholder="请输入列数">
			</div>
			<p>
				<button type="submit" class="btn btn-primary">生成</button>
				<button type="reset" class="btn btn-info">重置</button>
			</p>
		</div>
		<!-- <div class="col-md-4">右侧</div> -->
	</div>
</body>
<!-- jquery 核心 JavaScript 文件 -->
<script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<!-- Bootstrap 核心 JavaScript 文件 -->
<script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script type="text/javascript">
	//创建请求标志,防止重复请求
	var flag = true
	// 给按钮设置按下事件
	$('button:first').on('click',function(){
		// 第一步:遍历并验证用户输入的信息
		// $(选择器).each(对象索引,当前对象)
		// 输入的所有内容非空判断
		$(':input').not('button').each(function(index,obj){
			// 用字符长度进行非空判断
			if ($(obj).val().length == 0){
				// 给空内容设置提示信息
				$(obj).after('<span style="color:red">不能为空</span>')
				// 用定时器设置提示时间
				setTimeout(function(){
					$(obj).next().remove()
				},1500)
				return false
			}
		})
		// 输入的行列内容继续判断
		$(':input').not($(':input:first')).not('button').each(function(index,obj){
			//isNaN():是否是数字判断
			if (isNaN($(obj).val())){
				// 给空内容设置提示信息
				$(obj).after('<span style="color:red">必须为数字</span>')
				// 用定时器设置提示时间
				setTimeout(function(){
					$(obj).next().remove()
				},1500)
				return false
			}
			// 非0判断
			else if ($(obj).val() <= 0){
				// 给空内容设置提示信息
				$(obj).after('<span style="color:red">必须大于0</span>')
				// 用定时器设置提示时间
				setTimeout(function(){
					$(obj).next().remove()
				},1500)
				return false
			}
		})

		// 第二步:GET方式处理用户信息请求
		if (flag == true) {
			// 提交GET请求中的数据
			$.get('api/check.php', {
					title: $('input[name="title"]').val(),
					rows: $('input[name="rows"]').val(),
					cols: $('input[name="cols"]').val()
				}, 
				function(data){
					//先将上一次生成的表格删除
					// $('p:last').next().remove()
					$('p').after(data)
					flag = false
				}
			)
		}
	})

	//重置按钮功能实现
	$('button:last').on('click',function(){
		// 清除输入框内容
		$(':input').not('button').val('')
		// 输入焦点保持到第一个输入框
		$(':input:first').focus()
		// 清除上次生成的表格
		$('p').next().remove()
		// 将标志设置为初始
		flag = true
		return false
	})
</script>	
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

后端代码实例(check.php):

<?php
// 判断用户的请求类型是否合法,必须是GET
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
	// 非空判断
	if (!empty($_GET['title']) && !empty($_GET['rows']) && !empty($_GET['cols'])) {
		$title = $_GET['title'];
		$rows = $_GET['rows'];
		$cols = $_GET['cols'];
		$table = '<table class="table table-bordered">';
		$table .= '<caption>'. $title. '</caption>';

		// 用双重循环生成表格
		// 1.生成表头
		$table .= '<tr>';
		for ($i=0; $i<$cols; $i++) {
			$table .= '<th>x</th>';
		}
		$table .= '</tr>';

		// 2.生成表格的内容
		for ($r=0; $r<$rows; $r++) {
			$table .= '<tr>';
			// 生成列
			for ($c=0; $c<$cols; $c++) {
				// 设置单元格数据与单元格数量对应
				$data = $r*$cols+$c;
				// ++$data使单元格数据从1开始,确保符合人类思维
				$table .= '<td>'. ++$data. '</td>';
			}
			$table .= '</tr>';
		}
		$table .= '</table>';
		echo $table;
		exit();
	}		
} else {
	exit('<span style="color:red">非法请求</span>');
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

总结:

表格生成器使用GET方式将用户填入的表格标题、行数、列数数据提交至后台php脚本,经过php脚本的处理将表格生成之后返回至前端html页面显示,其中特别注意数据处理流程,检测数据合格性->处理数据->返回数据,不能将流程顺序打乱。要熟悉其中使用的$.get,each(),$_GET[]等的参数和值的意义。

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议