批改状态:合格
老师批语:
表格生成器,前端与后端进行数据交互,使用循环输入表格
HTML 源码
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>表格生成器</title> <link rel="stylesheet" type="text/css" href="css/style.css"> <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> <!-- <script type="text/javascript" src="js/table.js"></script> --> <script type="text/javascript" src="js/create.js"></script> <!-- <script type="text/javascript" src="js/test.js"></script> --> </head> <body> <div> <p> <label for="tab-t">生成头</label> <input type="text" name="tab-t" id="tab-t" placeholder="标题"> </p> <p> <label for="tab-r">生成行</label> <input type="text" name="tab-r" id="tab-r" placeholder="行"> </p> <p> <label for="tab-c">生成列</label> <input type="text" name="tab-c" id="tab-c" placeholder="列"> </p> <p> <button>生成</button> <button>重置</button> </p> </div> </body> </html>
CSS 源码
.main{
width: 500px;
border: 1px solid #ccc;
border-radius: 20px;
margin: auto;
}
.main p{
margin-left: 30px;
}
.main button{
border: 0px;
width: 80px;
height: 30px;
background-color: green;
color: white;
}JS 源码
$(document).ready(function(){
var flag=true
$('button:first').click(function(){
if($('#tab-t').val().length==0){
var plac = $('#tab-t').attr('placeholder')
var msg = '<span style="color:red;">'+plac+'不能为空!</span>'
//如果为空则提示
$('#tab-t').after(msg)
setTimeout(function(){
$('#tab-t').next().remove()
$('#tab-t').focus()
},2000)
return false
}else{
//开始循环提交的 行 和 列
$('input').not($('#tab-t')).each(function(index,obj){
if($(obj).val().length==0){
//得到文本提示
var plac = $(obj).attr('placeholder')
var msg = '<span style="color:red;">'+plac+'不能为空!</span>'
//如果为空则提示
$(obj).after(msg)
setTimeout(function(){
$(obj).next().remove()
$(obj).focus()
},2000)
return false
}else if(isNaN($(obj).val())){
var msg = '<span style="color:green;">输入必须为数字!</span>'
//如果为空则提示
$(obj).after(msg)
setTimeout(function(){
$(obj).next().remove()
$(obj).focus()
},2000)
return false
}else if($(obj).val() <= 0){
// console.log('--'+$(obj).val())
var msg = '<span style="color:green;">输入数必须大于0!</span>'
//如果为空则提示
$(obj).after(msg)
setTimeout(function(){
$(obj).next().remove()
$(obj).focus()
},2000)
return false
}else{
//开始提交
// $.get(url, data, success)
if(flag){
$.get(
//1.请求处理的脚本
'admin/table.php',
//2.发送的请求参数
{
tab_t:$('#tab-t').val(),
tab_r:$('#tab-r').val(),
tab_c:$('#tab-c').val()
},
//3.请求成功的回调函数
function(data){
//先将上一次生成的表格删除
$('p:last').next().remove()
//生成新的表格
$('p:last').after(data)
}
)
flag = false //提交一次之后设置为 false 防止重复提交
}
//
}
})
}
})
//重置
$('button:last').click(function(){
$(':input').val('') //清空所有 input
$('h2').remove()
$('table').remove()
$(':input:first').focus()
flag=true
})
})PHP 源码
<?php
//判断用户的请求类型是否合法,必须是GET请求
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
//如果用户发送的数据全部存在且不为空
if (!empty($_GET['tab_t']) && !empty($_GET['tab_r']) && !empty($_GET['tab_c'])) {
//获取提交过来的数据
$tb_t = $_GET['tab_t'];
$tb_r = $_GET['tab_r'];
$tb_c = $_GET['tab_c'];
$table = '<h2 style="color:green;text-align: center;">'.$tb_t.'</h2>';
//创建表格的基本架构,采用字符串拼接方式,最后统一生成,提高效率
$table .= '<p><table border="1" cellspacing="0" cellpadding="3" align="center" width="80%">';
//下面用双重循环来生成这个表格
//1生成表头
$table .= '<tr align="center" bgcolor="lightgreen">';
for ($i=0; $i<$tb_c; $i++) {
$table .= '<th>第:'.($i+1).'列</th>';
}
$table .= '</tr>';
//2.生成表格内容区
//外层行循环
for ($r=0; $r<$tb_r; $r++) {
$table .= '<tr>';
//内层列循环
for($c=0; $c<$tb_c; $c++) {
//设置单元格的数据,数据与单元格数量对应
$data = $r*$tb_c+$c;
// ++$data: 可以确保从1开始计数,以确保符合人类正常思维
$table .= '<td align="center">'.++$data.'</td>';
}
$table .= '</tr>';
}
$table .= '</table></p>';
//将生成的表格返回到客户端
echo $table;
//结束当前脚本,可以省略,但写上该语句是一个很好的编程习惯
exit();
}
} else {
exit('<span style="color:red">请求类型错误</span>');
}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号