Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
多數(shù)PHP程序都使用HTML表單從用戶(hù)那里獲取數(shù)據(jù)并計(jì)算結(jié)果。
首先創(chuàng)造一個(gè)基本的HTML大綱,包含表單控件;然后將控件進(jìn)行合并(HTML表單必須包括一個(gè)提交按鈕,用戶(hù)單擊它可以將表單數(shù)據(jù)發(fā)送到服務(wù)器。)一個(gè)單獨(dú)的HTML頁(yè)面可以包含多個(gè)表單。
包含表單的HTML結(jié)構(gòu)和和普通的HTML結(jié)構(gòu)一樣。
<HTML>
<HEAD>
<TITLE>標(biāo)題放在這</TITLE>
</HEAD>
<BODY>
表單頁(yè)面放在這
</BODY>
</HTML>
在包含表單的HTML頁(yè)面中可以使用任何HTML標(biāo)簽?;镜谋韱问褂肍ROM標(biāo)簽來(lái)說(shuō)明。該標(biāo)簽中METHOD屬性接收GET或POST兩個(gè)值中的一個(gè)。ACTION屬性子明PHP腳本的url,該腳本可以收集通過(guò)表單收集的數(shù)據(jù),可以是絕對(duì)路徑或者相對(duì)路徑。
<FORM METHOD="method" ACTION="url">
中間可以放置表單控件
</FORM>
兩個(gè)常用的基本控件:文本框和提交按鈕。
文本框:允許用戶(hù)鍵入信息以發(fā)送給PHP腳本。NAME屬性為文本提供名稱(chēng),PHP腳本可以通過(guò)名稱(chēng)準(zhǔn)確訪(fǎng)問(wèn)其內(nèi)容,因此它應(yīng)該是唯一的且符合PHP變量命名規(guī)則(但不需要$符號(hào)),單標(biāo)簽。VALUE屬性指明出現(xiàn)在提交按鈕上面的標(biāo)題。創(chuàng)建方式如下:
<INPUT TYPE = "TEXT" NAME="text">
提交按鈕:允許用戶(hù)將一個(gè)表單的內(nèi)容發(fā)送到服務(wù)器,一個(gè)HTML表單對(duì)應(yīng)應(yīng)該有一個(gè)提交按鈕。
示例:一個(gè)完整的HTML表單。
<HTML>
<HEAD>
<TITLE>標(biāo)題</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>
可以在一個(gè)HTML頁(yè)面中包含多個(gè)表單,注意下一個(gè)表單的FORM開(kāi)始之前需要結(jié)束前一個(gè)FORM表單。
<HTML>
<HEAD>
<TITLE>標(biāo)題</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屬性用于設(shè)置文本框的可視大?。籑AXLENGTH指明用戶(hù)鍵入字符的最大長(zhǎng)度;VALUE給出了一個(gè)最初顯示在文本框中的值。
<input type="text" name="" size="" maxlength="" value="">
文本區(qū)域可以輸入多行文本。NAME和ROWS屬性是必須的。ROWS屬性表明了文本區(qū)域內(nèi)可以看到的文本行數(shù),充滿(mǎn)時(shí)會(huì)滾動(dòng)。COLS屬性指明可見(jiàn)文本列數(shù)與行數(shù)類(lèi)似。WRAP屬性指明文本區(qū)域內(nèi)單詞換行的方式,可以指定如下值。該標(biāo)簽為雙標(biāo)簽。
值 | 說(shuō)明 |
off | 禁止單詞換行但用戶(hù)可以輸入換行符強(qiáng)制換行 |
virtual/soft | 各行顯示為換行,但是換行并沒(méi)有被發(fā)送到服務(wù)器 |
physica/hard | 啟用了單詞換行 |
<inputarea name="" rows="" cols="" wrap="">
創(chuàng)建密碼框的語(yǔ)法與文本框相同,但要將TYPE屬性指定為PASSWORD而不是TYPE。
<input type="password" name="" size="" maxlength="" value="">
取兩個(gè)值中的一個(gè),即二選一。TYPE屬性是必須的,checked屬性出現(xiàn),該復(fù)選框默認(rèn)情況會(huì)被選定。value屬性指定復(fù)選框被選定情況下被發(fā)送到服務(wù)器的值,默認(rèn)發(fā)送on值。法如下:
<input type="checkbox" name="" checked value="">
語(yǔ)法與復(fù)選框?qū)傩院x相同,但是TYPE屬性的值必須是RADIO,NAME屬性是必須的。
<input type="radio" name="" checked value="">
用戶(hù)可以選擇一個(gè)或者多個(gè)選項(xiàng),它是一個(gè)滾動(dòng)菜單。
<select name="" multipile size="">options go here</select>
name屬性是必須的,multipile屬性指明用戶(hù)可以通過(guò)按下crtl鍵并單擊多個(gè)選項(xiàng)來(lái)選擇它們
列表框的單選行為可作為單選按鈕。
<option selected value="text"></options>
<input type="hidden" name="text"value="">
<input type="FILE" name="name" accept="time" value="text">
其中type屬性是必須的。格式通過(guò)使用MIME碼指定。常用的格式如下:
超文本標(biāo)記語(yǔ)言文本 .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音樂(lè)文件 :mid,.midi audio/midi,audio/x-midi
RealAudio音樂(lè)文件 .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的事件少一個(gè)on
1)鼠標(biāo)事件
click:?jiǎn)螕羰录?/p>
//dbclick:雙擊事件
mouseover:鼠標(biāo)懸念(移入)
mouseout:鼠標(biāo)移出
<style>
.abc{
background-color: #aaa;
}
</style>
<script type="text/javascript">
$(function(){
$("#nav li").mouseover(function(){
$(this).addClass("abc");//當(dāng)鼠標(biāo)移入li元素時(shí)添加樣式
}).mouseout(function(){
//$(this).removeClass() //當(dāng)鼠標(biāo)移出時(shí)刪除所有樣式
$(this).removeClass("abc") //當(dāng)鼠標(biāo)移出時(shí)刪除指定樣式
});
});
</script>
<div id="nav">
<ul>
<li><a href="#">首頁(yè)</a></li>
<li><a href="#">服裝</a></li>
<li><a href="#">電器</a></li>
<li><a href="#">團(tuán)購(gòu)</a></li>
<li><a href="#">在線(xiàn)瀏覽</a></li>
</ul>
</div>
2) 鍵盤(pán)事件
keydown:鍵盤(pán)按下事件
keypress:鍵盤(pán)按下并放開(kāi)時(shí)觸發(fā)
keydown:鍵盤(pán)放開(kāi)時(shí)觸發(fā)
<script type="text/javascript">
$(function(){
//按回車(chē)鍵自動(dòng)登錄(不用再點(diǎn)擊登錄按鈕)
$(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:獲得焦點(diǎn)時(shí)觸發(fā)
blur:失去焦點(diǎn)
select:文本選中時(shí)觸發(fā)
<script type="text/javascript">
$(function(){
//文本框獲得焦點(diǎn)時(shí),將當(dāng)前文本框的內(nèi)容清空(值等于"請(qǐng)輸入登錄名..")
//文本框失去焦點(diǎn)時(shí),判斷內(nèi)容是否為"請(qǐng)輸入登錄名.."或是否為空,那么將這個(gè)值"請(qǐng)輸入登錄名.."設(shè)回到文本框
$("#txtLoginName").focus(function(){
if($(this).val()=='請(qǐng)輸入登錄名...'){
$(this).val('');//清空內(nèi)容
}
}).blur(function(){
if($(this).val().trim()==''){
$(this).val('請(qǐng)輸入登錄名...');//清空內(nèi)容
}
});
});
</script>
<form id="actionForm" action="../index.html">
登錄名:<input id="txtLoginName" value="請(qǐng)輸入登錄名..." /><br />
密碼:<input type="password" />
<input type="button" value="登錄" />
</form>
4)其它事件
bind():綁定事件
unbind():移除綁定事件
<script type="text/javascript">
$(function(){
//綁定單個(gè)事件
// $("#btn1").bind('click',function(){
// alert("OK");
// });
//綁定多個(gè)事件
$("#btn1").bind({
mouseover:function(){
alert("鼠標(biāo)懸念");
},
mouseout:function(){
alert("鼠標(biāo)移出");
}
})
//解除綁定事件
$("#btn2").click(function(){
//$("#btn1").unbind("click");//解除綁定的單個(gè)事件
$("#btn1").unbind("mouseover mouseout");//解除多個(gè)綁定的事件,用空格分隔
//$("#btn1").unbind();//解除所有綁定的事件
});
});
</script>
<input type="button" id="btn1" value="點(diǎn)我" /><br />
<input type="button" id="btn2" value="解除綁定" />
hover():相當(dāng)于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");//當(dāng)鼠標(biāo)移入li元素時(shí)添加樣式
// }).mouseout(function(){
// //$(this).removeClass() //當(dāng)鼠標(biāo)移出時(shí)刪除所有樣式
// $(this).removeClass("abc") //當(dāng)鼠標(biāo)移出時(shí)刪除指定樣式
// });
$("#nav li").hover(
function(){
$(this).addClass("abc");//當(dāng)鼠標(biāo)移入li元素時(shí)添加樣式
},
function(){
$(this).removeClass("abc") //當(dāng)鼠標(biāo)移出時(shí)刪除指定樣式
}
);
});
</script>
togger():
a) 鼠標(biāo)連續(xù)點(diǎn)擊
b) 顯示和隱藏
<script type="text/javascript">
$(function(){
//點(diǎn)擊當(dāng)前頁(yè)面時(shí)顯示紅綠藍(lán)的背景色
$("body").toggle(
function(){
$(this).css("background-color","red");
},
function(){
$(this).css("background-color","green");
},
function(){
$(this).css("background-color","blue");
}
);
});
</script>
</head>
<body>
測(cè)試
</body>
.說(shuō)明:
推薦指數(shù):★★★★
通俗易懂,小白一看就會(huì),高手請(qǐng)飄過(guò)。
學(xué)python也是需要懂一點(diǎn)Html、Css、JavaScript的基礎(chǔ)知識(shí)的。
建議使用vscode編輯器。
2.效果圖1
3.代碼:保存為html,用瀏覽器打開(kāi)即可。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>圓形百分比進(jìn)度條效果</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%是顯示百分?jǐn)?shù),動(dòng)態(tài)顯示由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());
//通過(guò)計(jì)時(shí)器來(lái)顯示過(guò)渡的百分比進(jìn)度
var temp = 0;
var timer = setInterval(function(){
calculate(temp);
//清除計(jì)時(shí)器結(jié)束該方法調(diào)用
if(temp == num){
clearInterval(timer);
}
temp++;
},30)
//改變頁(yè)面顯示百分比
function calculate(value){
//改變頁(yè)面顯示的值
$('.text').html(value + '%');
//清除上次調(diào)用該方法殘留的效果
$('.circle-left').remove();
$('.mask-right').remove();
//當(dāng)百分比小于等于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.拆分法:把一個(gè)含有css和js(JavaScript)的html,拆掉三個(gè)文件,一個(gè)叫cirbar1.html,另外的叫:cirbar1.css和cirbar1.js文件,放在同一個(gè)文件夾內(nèi)。這是./的意思,也可以指定文件夾。
4.1 cirbar1.html的代碼:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>圓形百分比進(jìn)度條效果v2</title>
<!--如果是style type="text/css"這種直接在html中設(shè)置css,注意起始是*,不是點(diǎn)-->
<!--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>
<!--這個(gè)外部js文件=jquery.min.js,不能少,否則不能動(dòng)了-->
<script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"--></script>
<!--同樣的,把寫(xiě)在html的js,新建一個(gè)cirbar1.js,復(fù)制下去,保存,這樣子簡(jiǎn)潔很多-->
<!--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());
//通過(guò)計(jì)時(shí)器來(lái)顯示過(guò)渡的百分比進(jìn)度
var temp = 0;
var timer = setInterval(function(){
calculate(temp);
//清除計(jì)時(shí)器結(jié)束該方法調(diào)用
if(temp == num){
clearInterval(timer);
}
temp++;
},30)
//改變頁(yè)面顯示百分比
function calculate(value){
//改變頁(yè)面顯示的值
$('.text').html(value + '%');
//清除上次調(diào)用該方法殘留的效果
$('.circle-left').remove();
$('.mask-right').remove();
//當(dāng)百分比小于等于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);
}
}
})
==============================
再來(lái)一個(gè),不用外部js文件的圓形進(jìn)度條
順帶回顧一下相關(guān)知識(shí)。
==============================
5.效果圖
6.三個(gè)文件,放在同一個(gè)文件夾中
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步---標(biāo)題名稱(chēng)-->
<title>圓形進(jìn)度條v1</title>
<!--注意:./代表同一個(gè)文件夾下,也就是css和js文件與本html文件放在同一個(gè)文件夾下-->
<!--第2-1-3步---導(dǎo)入css文件-->
<link href="./cirbar.css" rel="stylesheet" />
</head>
<!--第2-2步---body部分-->
<body>
<!--第2-2-1步---定義畫(huà)布部分,注意沒(méi)有逗號(hào)隔開(kāi),大小設(shè)置-->
<canvas class="canvas" id="canvas" width="400" height="400"></canvas>
<!--第2-2-2步---導(dǎo)入js文件部分-->
<script src="./cirbar.js"></script>
<!--注意收尾-->
</body>
<!--注意收尾-->
</html>
6.2 cirbar.css代碼:
.canvas {
/*畫(huà)布的背景顏色設(shè)置為:黑色*/
background:#303030;
}
6.3 cirbar.js代碼:
window.onload = function () {
var canvas = document.getElementById('canvas'), //獲取canvas元素
context = canvas.getContext('2d'), //獲取畫(huà)圖環(huán)境,指明為2d
centerX = canvas.width / 2, //Canvas中心點(diǎn)x軸坐標(biāo)
centerY = canvas.height / 2, //Canvas中心點(diǎn)y軸坐標(biāo)
rad = Math.PI * 2 / 100, //將360度分成100份,那么每一份就是rad度
speed = 0.1; //加載的快慢就靠它了
//繪制紅色外圈
function blueCircle(n) {
context.save();
context.strokeStyle = " #1E90FF"; //隨百分?jǐn)?shù)轉(zhuǎn)動(dòng)的外圈的顏色為藍(lán)色
context.lineWidth = 3; //設(shè)置線(xiàn)寬
context.beginPath(); //路徑開(kāi)始
//注意-為順時(shí)針,+為逆時(shí)針
//用于繪制圓弧context.arc(x坐標(biāo),y坐標(biāo),半徑,起始角度,終止角度,順時(shí)針/逆時(shí)針)
//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(); //路徑結(jié)束
context.restore();
}
//繪制白色外圈,初始的白色外圈
function whiteCircle() {
context.save();
context.beginPath();
// 下面百分?jǐn)?shù)的字體顏色設(shè)置后上面的外圈的顏色竟然保持一樣
//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可以保證樣式屬性只運(yùn)用于該段canvas元素
context.strokeStyle = "#7FFF00";//設(shè)置中間動(dòng)態(tài)百分?jǐn)?shù)的顏色
context.font = "25px Arial"; //設(shè)置字體大小和字體
context.textAlign = 'center';//字體水平居中
context.textBaseline = 'middle';//字體垂直居中
//繪制字體,并且指定位置
context.strokeText(n.toFixed(0) + "%", centerX, centerY);
context.stroke(); //執(zhí)行繪制
context.restore();
}
//循環(huán)獲取
(function drawFrame() {
window.requestAnimationFrame(drawFrame, canvas);
context.clearRect(0, 0, canvas.width, canvas.height);
whiteCircle();
text(speed);
blueCircle(speed);
if (speed < 100) {
//1可從后臺(tái)獲取值,也是從0~100,step為1,代表速度
speed += 1;
}
}());
}
注意到6.3js文件與4.3js文件的區(qū)別了么?一個(gè)有:window.onload =,一個(gè)沒(méi)有,且只有$和小括號(hào),因?yàn)橥獠康木褪俏募x了一部分功能。
*請(qǐng)認(rèn)真填寫(xiě)需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。