实例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>4月13日作业—表格自动生成器</title> </head> <style type="text/css"> fieldset{width:450px; margin:40px auto;} h3{color: green;} button{width:80px;height:30px;border:none;background-color: green;color: #fff;margin-right:20px;cursor: pointer;} p:last-child{ margin-left:45px; } </style> <body> <fieldset> <legend><h3>表格自动生成器</h3></legend> <p><label>表格标题:<input type="text" name="title" placeholder=""></label></p> <p><label>输 入 行:<input type="text" name="rows" placeholder=""></label></p> <p><label>输 入 列:<input type="text" name="cols" placeholder=""></label></p> <p><button>重置行列</button><button>生成表格</button></p> </fieldset> <script type="text/javascript" src="http://libs.43d.cc/js/jquery-3.3.1.js"></script> <script type="text/javascript"> $('button:last').on('click',function(){ //创建请求标志,防止重复请求 var flag = true //第一步:遍历并验证用户的输入信息 //$(选择器).each(对象索引,当前对象):用来循环遍历获取到所有jquery对象 $(':input').not('button').each(function(index,obj){ //非空判断 if ($(obj).val().length == 0) { //在当前元素后添加提示信息 $(obj).after('<span style="color:red">不能为空</span>') //用定时器使提示信息2秒后消失 setTimeout(function(){ //2秒后,将提示信息删除 $(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( //1.请求处理的脚本 'form.php', //2.发送的请求参数 { title: $('input[name="title"]').val(), 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(0).click(function(){ //将行与列数据全部清空 $(':input').not('button').val('') //将输入焦点重置到行文本框上 $(':input:first').focus() //将上一次请求生成的表格删除 $('p:last').next().remove() //重置请求状态为true:允许用户请求 flag = true }) </script> </body> </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 border="1" cellspacing="0" cellpadding="3" align="center" width="90%">'; //下面用双重循环来生成这个表格 //1生成表头 $table .= '<caption>'.$title.'</caption>'; $table .= '<tr align="center" bgcolor="lightgreen">'; for ($i=1; $i<=$cols; $i++) { $table .= '<th>第'. $i .'列</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 align="center">'.++$data.'</td>'; } $table .= '</tr>'; } $table .= '</table>'; //将生成的表格返回到客户端 echo $table; //结束当前脚本,可以省略,但写上该语句是一个很好的编程习惯 exit(); } } else { exit('<span style="color:red">请求类型错误</span>'); } // @$title = $_GET['title']; // $rows = $_GET['rows']; // $cols = $_GET['cols']; // $tab_str = "<table border=\"1\" width=\"80%\" align=\"center\">\n"; // $tab_str .= '<caption>'. $title . '</caption>'; // for ($i = 0; $i < $rows; $i++) // { // $tab_str.="<tr>\n"; // for ($k = 0; $k < $cols; $k++) // { // $j = $i * $cols + $k; //单元格序列 // $tab_str.= "<td>$j</td>\n"; // } // $tab_str.="</tr>\n"; // } // $tab_str.="</table>\n"; // print $tab_str;
运行实例 »
点击 "运行实例" 按钮查看在线实例