多数PHP程序都使用HTML表单从用户那里获取数据并计算结果。
首先创造一个基本的HTML大纲,包含表单控件;然后将控件进行合并(HTML表单必须包括一个提交按钮,用户单击它可以将表单数据发送到服务器。)一个单独的HTML页面可以包含多个表单。
包含表单的HTML结构和和普通的HTML结构一样。
<HTML>
<HEAD>
<TITLE>标题放在这</TITLE>
</HEAD>
<BODY>
表单页面放在这
</BODY>
</HTML>
在包含表单的HTML页面中可以使用任何HTML标签。基本的表单使用FROM标签来说明。该标签中METHOD属性接收GET或POST两个值中的一个。ACTION属性子明PHP脚本的url,该脚本可以收集通过表单收集的数据,可以是绝对路径或者相对路径。
<FORM METHOD="method" ACTION="url">
中间可以放置表单控件
</FORM>
两个常用的基本控件:文本框和提交按钮。
文本框:允许用户键入信息以发送给PHP脚本。NAME属性为文本提供名称,PHP脚本可以通过名称准确访问其内容,因此它应该是唯一的且符合PHP变量命名规则(但不需要$符号),单标签。VALUE属性指明出现在提交按钮上面的标题。创建方式如下:
<INPUT TYPE = "TEXT" NAME="text">
提交按钮:允许用户将一个表单的内容发送到服务器,一个HTML表单对应应该有一个提交按钮。
示例:一个完整的HTML表单。
<HTML>
<HEAD>
<TITLE>标题</TITLE>
</HEAD>
<BODY>
<FORM METHOD="POST" ACTION="phpinfo.php">
<INPUT TYPE="TEXT" NAME="user_name">
<BR/>
<BR/>
<INPUT TYPE="TEXT" NAME="user_email">
<BR/>
<BR/>
<INPUT TYPE="SUBMIT" VALUE="Send the Data">
</FORM>
</BODY>
</HTML>
可以在一个HTML页面中包含多个表单,注意下一个表单的FORM开始之前需要结束前一个FORM表单。
<HTML>
<HEAD>
<TITLE>标题</TITLE>
</HEAD>
<BODY>
<FORM METHOD="POST" ACTION="phpinfo.php">
<INPUT TYPE="TEXT" NAME="user_name">
<BR/>
<BR/>
<INPUT TYPE="TEXT" NAME="user_email">
<BR/>
<BR/>
<INPUT TYPE="SUBMIT" VALUE="Send the Data">
<BR/>
<BR/>
</FORM>
<FORM METHOD="POST" NAME="phpinfo.php">
<INPUT TYPE="TEXT" NAME="user_name1">
<BR/>
<BR/>
<INPUT TYPE="TEXT" NAME="user_email1">
<BR/>
<BR/>
<INPUT TYPE="SUBMIT" VALUE="Send the Data1">
</FORM>
</BODY>
</HTML>
文本框的属性中,TYPE和NAME是必须的,其余是可选属性。SIZE属性用于设置文本框的可视大小;MAXLENGTH指明用户键入字符的最大长度;VALUE给出了一个最初显示在文本框中的值。
<input type="text" name="" size="" maxlength="" value="">
文本区域可以输入多行文本。NAME和ROWS属性是必须的。ROWS属性表明了文本区域内可以看到的文本行数,充满时会滚动。COLS属性指明可见文本列数与行数类似。WRAP属性指明文本区域内单词换行的方式,可以指定如下值。该标签为双标签。
值 | 说明 |
off | 禁止单词换行但用户可以输入换行符强制换行 |
virtual/soft | 各行显示为换行,但是换行并没有被发送到服务器 |
physica/hard | 启用了单词换行 |
<inputarea name="" rows="" cols="" wrap="">
创建密码框的语法与文本框相同,但要将TYPE属性指定为PASSWORD而不是TYPE。
<input type="password" name="" size="" maxlength="" value="">
取两个值中的一个,即二选一。TYPE属性是必须的,checked属性出现,该复选框默认情况会被选定。value属性指定复选框被选定情况下被发送到服务器的值,默认发送on值。法如下:
<input type="checkbox" name="" checked value="">
语法与复选框属性含义相同,但是TYPE属性的值必须是RADIO,NAME属性是必须的。
<input type="radio" name="" checked value="">
用户可以选择一个或者多个选项,它是一个滚动菜单。
<select name="" multipile size="">options go here</select>
name属性是必须的,multipile属性指明用户可以通过按下crtl键并单击多个选项来选择它们
列表框的单选行为可作为单选按钮。
<option selected value="text"></options>
<input type="hidden" name="text"value="">
<input type="FILE" name="name" accept="time" value="text">
其中type属性是必须的。格式通过使用MIME码指定。常用的格式如下:
超文本标记语言文本 .html,.html text/html
普通文本 :txt text/plain
word文档:application/msword
RTF文本 :rtf application/rtf
GIF图形 :gif image/gif
JPEG图形 :jpeg,
jpg: image/jpeg
au声音文件:au audio/basic
MIDI音乐文件 :mid,.midi audio/midi,audio/x-midi
RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio
MPEG文件 .mpg,.mpeg video/mpeg
AVI文件 .avi video/x-msvideo
GZIP文件 .gz application/x-gzip
压缩文件.rar application/octet-stream
压缩文件.zip application/x-zip-compressed
TAR文件 .tar application/x-tar
<input type="image" src="url" name="text" align="align">
<input type="reset" value="text">
、jQuery的事件有哪些?
javscript的事件:onClick,onmouseover
jquery的事件:click,mouseover
注意jQuery的事件比javascript的事件少一个on
1)鼠标事件
click:单击事件
//dbclick:双击事件
mouseover:鼠标悬念(移入)
mouseout:鼠标移出
<style>
.abc{
background-color: #aaa;
}
</style>
<script type="text/javascript">
$(function(){
$("#nav li").mouseover(function(){
$(this).addClass("abc");//当鼠标移入li元素时添加样式
}).mouseout(function(){
//$(this).removeClass() //当鼠标移出时删除所有样式
$(this).removeClass("abc") //当鼠标移出时删除指定样式
});
});
</script>
<div id="nav">
<ul>
<li><a href="#">首页</a></li>
<li><a href="#">服装</a></li>
<li><a href="#">电器</a></li>
<li><a href="#">团购</a></li>
<li><a href="#">在线浏览</a></li>
</ul>
</div>
2) 键盘事件
keydown:键盘按下事件
keypress:键盘按下并放开时触发
keydown:键盘放开时触发
<script type="text/javascript">
$(function(){
//按回车键自动登录(不用再点击登录按钮)
$(document).keydown(function(event){
if(event.keyCode==13){
$("#actionForm").submit();
return true;
}
return false;
})
});
</script>
<form id="actionForm" action="../index.html">
登录名:<input id="txtLoginName" /><br />
密码:<input type="password" />
<input type="button" value="登录" />
</form>
3) 表单事件
focus:获得焦点时触发
blur:失去焦点
select:文本选中时触发
<script type="text/javascript">
$(function(){
//文本框获得焦点时,将当前文本框的内容清空(值等于"请输入登录名..")
//文本框失去焦点时,判断内容是否为"请输入登录名.."或是否为空,那么将这个值"请输入登录名.."设回到文本框
$("#txtLoginName").focus(function(){
if($(this).val()=='请输入登录名...'){
$(this).val('');//清空内容
}
}).blur(function(){
if($(this).val().trim()==''){
$(this).val('请输入登录名...');//清空内容
}
});
});
</script>
<form id="actionForm" action="../index.html">
登录名:<input id="txtLoginName" value="请输入登录名..." /><br />
密码:<input type="password" />
<input type="button" value="登录" />
</form>
4)其它事件
bind():绑定事件
unbind():移除绑定事件
<script type="text/javascript">
$(function(){
//绑定单个事件
// $("#btn1").bind('click',function(){
// alert("OK");
// });
//绑定多个事件
$("#btn1").bind({
mouseover:function(){
alert("鼠标悬念");
},
mouseout:function(){
alert("鼠标移出");
}
})
//解除绑定事件
$("#btn2").click(function(){
//$("#btn1").unbind("click");//解除绑定的单个事件
$("#btn1").unbind("mouseover mouseout");//解除多个绑定的事件,用空格分隔
//$("#btn1").unbind();//解除所有绑定的事件
});
});
</script>
<input type="button" id="btn1" value="点我" /><br />
<input type="button" id="btn2" value="解除绑定" />
hover():相当于mouseover和mouseout的组合
.abc{
background-color: #aaa;
}
</style>
<script type="text/javascript" src="../js/jquery-1.8.3.js" ></script>
<script type="text/javascript">
$(function(){
// $("#nav li").mouseover(function(){
// $(this).addClass("abc");//当鼠标移入li元素时添加样式
// }).mouseout(function(){
// //$(this).removeClass() //当鼠标移出时删除所有样式
// $(this).removeClass("abc") //当鼠标移出时删除指定样式
// });
$("#nav li").hover(
function(){
$(this).addClass("abc");//当鼠标移入li元素时添加样式
},
function(){
$(this).removeClass("abc") //当鼠标移出时删除指定样式
}
);
});
</script>
togger():
a) 鼠标连续点击
b) 显示和隐藏
<script type="text/javascript">
$(function(){
//点击当前页面时显示红绿蓝的背景色
$("body").toggle(
function(){
$(this).css("background-color","red");
},
function(){
$(this).css("background-color","green");
},
function(){
$(this).css("background-color","blue");
}
);
});
</script>
</head>
<body>
测试
</body>
.说明:
推荐指数:★★★★
通俗易懂,小白一看就会,高手请飘过。
学python也是需要懂一点Html、Css、JavaScript的基础知识的。
建议使用vscode编辑器。
2.效果图1
3.代码:保存为html,用浏览器打开即可。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>圆形百分比进度条效果</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
.bg{
width: 200px;
height: 200px;
border-radius: 100%;
background: #ccc;
position: relative;
margin: 20px auto;
}
.circle-right, .circle-left, .mask-right, .mask-left{
width: 200px;
height: 200px;
border-radius: 100%;
position: absolute;
top: 0;
left: 0;
}
.circle-right, .circle-left{
background: skyblue;
}
.mask-right, .mask-left{
background: #ccc;
}
.circle-right, .mask-right{
clip: rect(0,200px,200px,100px);
}
.circle-left, .mask-left{
clip: rect(0,100px,200px,0);
}
.text{
width: 160px;
height: 160px;
line-height: 160px;
text-align: center;
font-size: 34px;
color: deepskyblue;
border-radius: 100%;
background: #fff;
position: absolute;
top: 20px;
left: 20px;
}
</style>
</head>
<body>
<div class="bg">
<div class="circle-right"></div>
<!--100%是显示百分数,动态显示由0~100-->
<div class="text">100%</div>
</div>
<script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
//获取百分比值
var num = parseInt($('.text').html());
//通过计时器来显示过渡的百分比进度
var temp = 0;
var timer = setInterval(function(){
calculate(temp);
//清除计时器结束该方法调用
if(temp == num){
clearInterval(timer);
}
temp++;
},30)
//改变页面显示百分比
function calculate(value){
//改变页面显示的值
$('.text').html(value + '%');
//清除上次调用该方法残留的效果
$('.circle-left').remove();
$('.mask-right').remove();
//当百分比小于等于50
if(value <= 50){
var html = '';
html += '<div class="mask-right" style="transform:rotate('+ (value * 3.6) +'deg)"></div>';
//元素里添加子元素
$('.circle-right').append(html);
}else{
value -= 50;
var html = '';
html += '<div class="circle-left">';
html += '<div class="mask-left" style="transform:rotate('+ (value * 3.6) +'deg)"></div>';
html += '</div>';
//元素后添加元素
$('.circle-right').after(html);
}
}
})
</script>
</body>
</html>
4.拆分法:把一个含有css和js(JavaScript)的html,拆掉三个文件,一个叫cirbar1.html,另外的叫:cirbar1.css和cirbar1.js文件,放在同一个文件夹内。这是./的意思,也可以指定文件夹。
4.1 cirbar1.html的代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>圆形百分比进度条效果v2</title>
<!--如果是style type="text/css"这种直接在html中设置css,注意起始是*,不是点-->
<!--style type="text/css"-->
<link href="./cirbar1.css" rel="stylesheet" />
</head>
<body>
<div class="bg">
<div class="circle-right"></div>
<div class="text">100%</div>
</div>
<!--这个外部js文件=jquery.min.js,不能少,否则不能动了-->
<script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"--></script>
<!--同样的,把写在html的js,新建一个cirbar1.js,复制下去,保存,这样子简洁很多-->
<!--script type="text/javascript"-->
<script src="./cirbar1.js"></script>
</body>
</html>
4.2 cirbar1.css的代码:
*{
margin: 0;
padding: 0;
}
.bg{
width: 200px;
height: 200px;
border-radius: 100%;
background: #ccc;
position: relative;
margin: 20px auto;
}
.circle-right, .circle-left, .mask-right, .mask-left{
width: 200px;
height: 200px;
border-radius: 100%;
position: absolute;
top: 0;
left: 0;
}
.circle-right, .circle-left{
background: skyblue;
}
.mask-right, .mask-left{
background: #ccc;
}
.circle-right, .mask-right{
clip: rect(0,200px,200px,100px);
}
.circle-left, .mask-left{
clip: rect(0,100px,200px,0);
}
.text{
width: 160px;
height: 160px;
line-height: 160px;
text-align: center;
font-size: 34px;
color: deepskyblue;
border-radius: 100%;
background: #fff;
position: absolute;
top: 20px;
left: 20px;
}
4.3 cirbar1.js的代码:
$(function(){
//获取百分比值
var num = parseInt($('.text').html());
//通过计时器来显示过渡的百分比进度
var temp = 0;
var timer = setInterval(function(){
calculate(temp);
//清除计时器结束该方法调用
if(temp == num){
clearInterval(timer);
}
temp++;
},30)
//改变页面显示百分比
function calculate(value){
//改变页面显示的值
$('.text').html(value + '%');
//清除上次调用该方法残留的效果
$('.circle-left').remove();
$('.mask-right').remove();
//当百分比小于等于50
if(value <= 50){
var html = '';
html += '<div class="mask-right" style="transform:rotate('+ (value * 3.6) +'deg)"></div>';
//元素里添加子元素
$('.circle-right').append(html);
}else{
value -= 50;
var html = '';
html += '<div class="circle-left">';
html += '<div class="mask-left" style="transform:rotate('+ (value * 3.6) +'deg)"></div>';
html += '</div>';
//元素后添加元素
$('.circle-right').after(html);
}
}
})
==============================
再来一个,不用外部js文件的圆形进度条
顺带回顾一下相关知识。
==============================
5.效果图
6.三个文件,放在同一个文件夹中
6.1 cirbar.html代码:
<!--第1步---声明html5-->
<!DOCTYPE html>
<!--第2步---html大框架-->
<html lang="en">
<!--第2-1步---head部分-->
<head>
<!--第2-1-1步---meta部分:声明字符编码格式:utf-8-->
<!--注意与python的第一行声明一样:# -*- coding: utf-8 -*-->
<meta charset="utf-8" />
<!--第2-1-2步---标题名称-->
<title>圆形进度条v1</title>
<!--注意:./代表同一个文件夹下,也就是css和js文件与本html文件放在同一个文件夹下-->
<!--第2-1-3步---导入css文件-->
<link href="./cirbar.css" rel="stylesheet" />
</head>
<!--第2-2步---body部分-->
<body>
<!--第2-2-1步---定义画布部分,注意没有逗号隔开,大小设置-->
<canvas class="canvas" id="canvas" width="400" height="400"></canvas>
<!--第2-2-2步---导入js文件部分-->
<script src="./cirbar.js"></script>
<!--注意收尾-->
</body>
<!--注意收尾-->
</html>
6.2 cirbar.css代码:
.canvas {
/*画布的背景颜色设置为:黑色*/
background:#303030;
}
6.3 cirbar.js代码:
window.onload = function () {
var canvas = document.getElementById('canvas'), //获取canvas元素
context = canvas.getContext('2d'), //获取画图环境,指明为2d
centerX = canvas.width / 2, //Canvas中心点x轴坐标
centerY = canvas.height / 2, //Canvas中心点y轴坐标
rad = Math.PI * 2 / 100, //将360度分成100份,那么每一份就是rad度
speed = 0.1; //加载的快慢就靠它了
//绘制红色外圈
function blueCircle(n) {
context.save();
context.strokeStyle = " #1E90FF"; //随百分数转动的外圈的颜色为蓝色
context.lineWidth = 3; //设置线宽
context.beginPath(); //路径开始
//注意-为顺时针,+为逆时针
//用于绘制圆弧context.arc(x坐标,y坐标,半径,起始角度,终止角度,顺时针/逆时针)
//context.arc(centerX, centerY, 50, Math.PI / 2, Math.PI / 2 - n * rad, false);
context.arc(centerX, centerY, 50, -Math.PI / 2, -(Math.PI / 2 - n * rad), false);
context.stroke(); //绘制
context.closePath(); //路径结束
context.restore();
}
//绘制白色外圈,初始的白色外圈
function whiteCircle() {
context.save();
context.beginPath();
// 下面百分数的字体颜色设置后上面的外圈的颜色竟然保持一样
//context.strokeStyle = "#F8F8FF";
context.arc(centerX, centerY, 50, 0, Math.PI * 2, false);
context.stroke();
context.closePath();
context.restore();
}
//百分比文字绘制
function text(n) {
context.save(); //save和restore可以保证样式属性只运用于该段canvas元素
context.strokeStyle = "#7FFF00";//设置中间动态百分数的颜色
context.font = "25px Arial"; //设置字体大小和字体
context.textAlign = 'center';//字体水平居中
context.textBaseline = 'middle';//字体垂直居中
//绘制字体,并且指定位置
context.strokeText(n.toFixed(0) + "%", centerX, centerY);
context.stroke(); //执行绘制
context.restore();
}
//循环获取
(function drawFrame() {
window.requestAnimationFrame(drawFrame, canvas);
context.clearRect(0, 0, canvas.width, canvas.height);
whiteCircle();
text(speed);
blueCircle(speed);
if (speed < 100) {
//1可从后台获取值,也是从0~100,step为1,代表速度
speed += 1;
}
}());
}
注意到6.3js文件与4.3js文件的区别了么?一个有:window.onload =,一个没有,且只有$和小括号,因为外部的就是文件定义了一部分功能。
*请认真填写需求信息,我们会在24小时内与您取得联系。