Blogger Information
Blog 15
fans 0
comment 1
visits 10920
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
表格生成器 ---4.13日作业
吴明的博客
Original
535 people have browsed it

综合了前端和后端php 处理的,综合做的第一个实例,花了些心思看懂了前端代码,但是还是有 逻辑上需要加强的,尤其是删除表格那块的逻辑,我还是要加强理解。

前端模块:4.13demo.php

实例

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>表格生成器</title>
	<style type="text/css">
		h3 {
			color: green;
			margin-left:40px;
		}
		button {
			width: 80px;
			height: 30px;
			border: none;
			background-color: green;
			color:white;
			margin-right: 30px;
		}
	</style>
</head>
<body>
	<h3>表格生成器</h3>
	<p><label>输入行:<input type="text" name = "rows"</label></p>
	<p><label>输入列:<input type="text" name = "cols"</label></p>
	<p><button>生成表格</button><button>重置行列</button></p>
	<script type = "text/javascript" src="jquery/jquery-3.3.1.min.js"></script>
	<script type="text/javascript">
	//创建请求标志,防止重复请求
	var flag = true;
	$('button:first').on('click',function(){
		//第一步:遍历并验证用户输入的信息
		$(':input').not('button').each(function(index,obj){
			//非空判断
			if($(obj).val().length == 0){
				//在元素后面加提示
				//alert(1)
				$(obj).after('<span style="color:red">不能为空</span>')
				//用定时器提示信息2秒后删除
				setTimeout(function(){
					$(obj).next().remove()
				},2000)
				//返回让用户重新操作
				return false
			}else if(isNaN($(obj).val())){
			$(obj).after('<span style="color:red">必须是数字</span>')
				setTimeout(function(){
						$(obj).next().remove()
					},2000)
					return false
		}//零值判断
		else if($(obj).val() <= 0){
			$(obj).after('<span style="color:red">必须大于0</span>')
				setTimeout(function(){
						$(obj).next().remove()
					},2000)
					return false
		}
		})
		//处理用户的请求(ajax实现)
		if (flag == true){
			$.get('4.14demo.php',{
				//1.请求处理的脚本'4.14demo.php';
					//2.发送的请求参{
						rows: $('input[name="rows"]').val(),
						cols: $('input[name="cols"]').val()
					},
					//3.请求成功的回调函数
					function(data){
					//先将上一次生成的表格删除
					$('p:last').next().remove()
					//生成新的表格
					$('p:last').after(data)
					//将请求标志设置为false,禁止重复请求
					flag = false
				}
				)
		}

	})
		//重置按钮
		$('button').eq(1).click(function(){
			//将行与列数据全部清空
			$(':input').not('button').val('')
			//将输入焦点重置到行文本框上
			$(':input:first').focus()
			//将上一次请求生成的表格删除
			$('p:last').next().remove()
			//重置请求状态为true:允许用户请求
			flag = true
		})
	</script>
</body>
</html>
后端 4.14demo.php 
实例
<?php
//判断用户的请求类型是否合法,必须是get
if($_SERVER['REQUEST_METHOD'] == 'GET'){
	if(!empty($_GET['rows']) && !empty($_GET['cols'])){
		$rows = $_GET['rows'];
		$cols = $_GET['cols'];

		//创建表格的基本架构,采用字符串的拼接方式, 最后统一生成,提高效率
		$table = '<table border="1" cellspacing="0:" cellpadding="3" align = "center" width = "80%">';
		//下面用双重循环来生成表格
		//1.生成表头
		$table.= '<tr align="center" bgcolor="lightgreen">';
		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+1;
				//$data:可以确保从1开始计数,以确保符合人类正常思维
				
				$table .= '<td align="center">'.$data.'</td>';
				
			}
			$table .= '</tr>';
		}
			$table .='</table>';
			//将生成的表格返回到客户端
		echo $table;
		//结束当前脚本,可以省略,但写是好习惯
		exit();
		}
	
}else{
	exit('<span style="color:red"非法请求</span>');
}
运行实例 »
点击 "运行实例" 按钮查看在线实例


总结:最终测试的都是能正常处理的,就是前端比较薄弱


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