整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

HTML-表单认识-第三章

、表单在网页中的应用:登录、注册常用到表单

2、表单的语法:

<form method="post" action="result.html">

<p> 名字:<input name="name" type="text" > </p>

<p> 密码:<input name="pass" type="password" > </p>

<p>

<input type="submit" name="Button" value="提交"/>

<input type="reset" name="Reset" value="重填“/>

</p>

</form>

3、表单元素说明:

type:指定元素的类型。text、password、checkbox、radio、submit、reset、file、hidden、image 和 button,默认为 text.

name:指定表单元素的名称.

value:元素的初始值。type 为 radio时必须指定一个值.

size:指定表单元素的初始宽度。当 type 为 text 或 password时,表单元素的大小以字符为单位。对于其他类型,宽度以像素为单位.

maxlength:type为text 或 password 时,输入的最大字符数.

checked:type为radio或checkbox时,指定按钮是否是被选中.

4、示例:


<html >

<head>

<title>表单元素</title>

</head>

<body>

<!-- 表单 -->

<form method="POST" action="#">

<!-- 标签 -->

<label for="username">姓名:</label>

<!-- 文本框 value属性是设置默认显示的值-->

<input id="username" value="songzetong" />



<!-- 密码框 -->

<br/><label for="pwd">密码:</label>

<input type="password" id="pwd">

<br/>


<!-- 单选框 -->

<label for="sex">性别:</label>

<input type ="radio" name ="sex" checked/>男

<input type ="radio" name ="sex"/>女


<!-- 复选框 -->

<br/>

<label for="hobby">爱好:</label>

<input type="checkbox" name ="hobby" id="hobby"/>听音乐

<input type="checkbox" name ="hobby"/>旅游

<input type="checkbox" name ="hobby"/>游泳


<br/>

<!-- 下拉列表 -->

<label for="month">月份:</label>

<select id="month"/>

<option>1月</option>

<option>2月</option>

<option>3月</option>

</select>

<br/>

<!-- 按钮 -->

<input type="reset" value="重置按钮"/>

<input type="submit" value="提交按钮"/>

<input type="button" value="普通按钮"/>

<br/>

<!-- 图片按钮 -->

<input type="image" src="one.jpg" width="200px" heigth="200px"/>

<br/>

<button type="submit">提交</button>

<button type="reset">重置</button>


<br/>

<label for="profile">

个人简介:

</label>

<!-- 多行文本域 -->

<textarea >本人已同意什么条款</textarea>


<br/>

<br/>

<br/>

<!-- 文件域 -->

<label for="upload">上传头像:</label>

<input type="file"/>

<!-- 邮箱 -->

<br/>

<label for="QQ邮箱">邮箱:</label>

<input type="email"/>



<br/>

<!-- 网址 -->

<label for="ur">网址:</label>

<input type="url"/>


<!-- 数字 -->

<br/>

<label for="shuzi">数字:</label>

<input type="number" name="shuzi" min="0" max="100" step="10"/>


<br/>

<label for="huakuai">滑块:</label>

<input type="range" />

<!-- 搜索框 -->


<br/>

<label for="sousuo">搜索</label>

<input type="search"/>


<!-- 隐藏域 -->

<br/>

<input type="hidden"value="1">

<!-- 只读:只能看不能修改,禁用:不能用 -->

<input value="我是只读的" readonly/>

<input type="button" value="我是禁用的" disabled/>


<!-- palceholder默认提示 -->

<br/>

<input placeholder="默认提示框"/>

<br/>

<!-- 文本框内容提示不能为空,否则不允许用户提交表单(网页上的必填项) -->

<input required="必填项"/>

<button type="submit">提交</button>

<br/>

<!-- 用户输入的内容必须符合正则表达式所指的规则,否则就不能提交表单-->

<input required pattern="^1[3578]\d{9}"/>

<button type="submit">提交</button>


</form>

</body>

</html>


效果图链接:file:///D:/ruanjian/VS/wenjianxiangmu/htmlThree/form.html

件拖拽上传

使用HTML5的文件API, 可以将操作系统中的文件拖放到浏览器的指定区域, 实现文件上传到服务器。本文将结合实例讲解HTML5+jQuery+PHP实现拖拽上传图片的过程, 来看下HTML5的魅力吧。

HTML

我们在页面中放置一个拖拽区域#drop_area, 即接收拖拽的区域, #preview用来预览拖拽上传的图片信息。

<div id="drop_area">将图片拖拽到此区域</div>
<div id="preview"></div>

Javascript

要想实现拖拽, 页面需要阻止浏览器默认行为, 即四个事件(拖离、拖后放、拖进、拖来拖去), 因为我们要阻止浏览器默认将图片打开的行为, 这里我们使用jQuery来完成。

$(function(){
//阻止浏览器默认行。
$(document).on({
    dragleave:function(e){ //拖离
    e.preventDefault();
},
drop:function(e){ //拖后放
    e.preventDefault();
},
dragenter:function(e){ //拖进
    e.preventDefault();
},
dragover:function(e){ //拖来拖去
    e.preventDefault();
}
});
...
});

接下来我们来了解下文件API。HTML5的文件API有一个FileList接口, 它可以通过e.dataTransfer.files拖拽事件传递的文件信息, 获取本地文件列表信息

var fileList = e.dataTransfer.files;

在本例中, 我们用javascript来侦听drop事件, 首先要判断拖入的文件是否符合要求, 包括图片类型、大小等, 然后获取本地图片信息, 实现预览, 最后上传。

$(function(){
/// ...接上部分
var box = document.getElementById('drop_area'); //拖拽区域
box.addEventListener("drop",function(e){
e.preventDefault(); //取消默认浏览器拖拽效果
var fileList = e.dataTransfer.files; //获取文件对象
//检测是否是拖拽文件到页面的操作
if(fileList.length == 0){
    return false;
}
//检测文件是不是图片
if(fileList[0].type.indexOf('image') === -1){
alert("您拖的不是图片!");
return false;
}

//拖拉图片到浏览器,可以实现预览功能
var img = window.URL.createObjectURL(fileList[0]);
var filename = fileList[0].name; //图片名称
var filesize = Math.floor((fileList[0].size)/1024);
if(filesize>500){
alert("上传大小不能超过500K.");
return false;
}
var str = "<img src='"+img+"'><p>图片名称:"+filename+"</p><p>大小:"+filesize+"KB</p>";
$("#preview").html(str);

//上传
xhr = new XMLHttpRequest();
xhr.open("post", "upload.php", true);
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");

var fd = new FormData();
fd.append('mypic', fileList[0]);

xhr.send(fd);
},false);
});

我们用FormData模拟表单数据, 直接将数据append到formdata对象中, 实现了ajax上传。

PHP

upload.php用于接收上传的文件信息, 完成上传, 实现代码如下:

<?php
$mypic = $_FILES["mypic"];
if(!empty($mypic)){
$picname = $_FILES['mypic']['name'];
$picsize = $_FILES['mypic']['size'];
if ($picsize > 512000) {
echo '图片大小不能超过500k';
exit;
}
$type = strstr($picname, '.');
if ($type != ".gif" && $type != ".jpg") {
echo '图片格式不对!';
exit;
}
$pics = 'helloweba' . $type;
//上传路径
$pic_path = "pics/". $pics;
move_uploaded_file($mypic["tmp_name"],$pic_path);
}
?>

下边这几句可以没有

<meta charset="utf-8">
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="mypic">
<input type="submit" value="上传">
</form>

最后总结下HTML5实现拖拽上传的技术要点:

1、监听拖拽:监听页面元素的拖拽事件, 包括:dragenter、dragover、dragleave和drop, 一定要将dragover的默认事件取消掉, 不然无法触发drop事件。如需拖拽页面里的元素, 需要给其添加属性draggable=”true”;

2、获取拖拽文件:在drop事件触发后通过e.dataTransfer.files获取拖拽文件列表, .length属性获取文件数量, .type属性获取文件类型。

3、读取图片数据并添加预览图。

4、发送图片数据:使用FormData模拟表单数据AJAX提交文件流。

绍http请求的两种方式,get和post方式。并用C#语言实现,如何请求url并获取返回的数据

两者的区别:

  1. 参数
  2. Get请求把提交的数据进行简单编码,同时将url的一部分发送到服务器
  3. 比如url:Http://127.0.0.1/login.jsp?Name=zhangshi&Age=30&Submit=%cc%E+%BD%BB
  4. 所以get请求方式提交的数据存在一定的安全隐患,如果在使用对安全性要求教高的操作(比如用户登录,支付),应使用post方式。Get请求是默认的http请求方法,我们一般通过get方法来获取表单数据
  5. POST请求会把请求的数据放置在HTTP请求包的包体中。上面的item=bandsaw就是实际的传输数据。
  6. 传输数据的大小
  7. GET,特定的浏览器和服务器对URL的长度有限制。因此,在使用GET请求时,传输数据会受到URL长度的限制。
  8. POST,由于不是URL传值,理论上是不会受限制的,但是实际上各个服务器会规定对POST提交数据大小进行限制,Apache、IIS都有各自的配置。
  9. 安全性
  10. POST的安全性比GET的高。这里的安全是指真正的安全,而不同于上面GET提到的安全方法中的安全,上面提到的安全仅仅是不修改服务器的数据。比如,在进行登录操作,通过GET请求,用户名和密码都会暴露再URL上,因为登录页面有可能被浏览器缓存以及其他人查看浏览器的历史记录的原因,此时的用户名和密码就很容易被他人拿到了。除此之外,GET请求提交的数据还可能会造成Cross-site request frogery攻击
  11. HTTP中的GET,POST,SOAP协议都是在HTTP上运行的

Get请求

请求类

///
/// Get请求
/// 
/// 
/// 字符串
public static string GetHttpResponse(string url, int Timeout)
{
 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
 request.Method = "GET";
 request.ContentType = "text/html;charset=UTF-8";
 request.UserAgent = null;
 request.Timeout = Timeout;
 HttpWebResponse response = (HttpWebResponse)request.GetResponse();
 Stream myResponseStream = response.GetResponseStream();
 StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
 string retString = myStreamReader.ReadToEnd();
 myStreamReader.Close();
 myResponseStream.Close();
 return retString;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

调用方法