批改状态:合格
老师批语:
主题:
利用ajax方式提交数据到服务器上的php程序处理,然后返回html表格。
实现效果:

<!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>点击 "运行实例" 按钮查看在线实例
<?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[]等的参数和值的意义。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号