Blogger Information
Blog 100
fans 8
comment 2
visits 150178
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
表格自动生成器-2018年4月16日0时15分发布(13日作业)
lilove的博客
Original
783 people have browsed it

主题:

利用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[]等的参数和值的意义。

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post