本节内容:
PHP获取html页面传值
在页面上获取相应的数据,传值常用的是get 和 post,get一般用来获取少量安全的参数,post则一般用来传递表单数据或者比较大的数据。
有关get post的原理与区别,请参考文章:
http://www.jb200.com/article/13902.html
1,最简单的形式:
$if(isset($_POST['id']))
$id=$_POST['id'];
2,有时表单传递时,使用以上的方法,比较费劲:
例如:用户注册
复制代码 代码示例:
if(isset($_POST['username']))
$username=$_POST['username'];
........
$user['username']=$username;
.......
$this->save($user);
由于表单的数据很多,需要不断的重复这类代码
得到之后我们还要每个都放入到数组或者对象之中。
其实,可以一步完成:
复制代码 代码示例:
<form name='user'>
<input type='text' name='user[username]' >
<input type='text' name='user['age']'>
<input type='submit' value='1'/>
</form>
在html中用上述的方式,即可以直接得到数组:
复制代码 代码示例:
if($_POST['submit'])
$user=$_POST['user'];
3,对于checkbox控件来说传给php的应该是个数组。
复制代码 代码示例:
足球<input name='football' type='checkbox' name='checkbox[]'/>
篮球<input name='basketball' type='checkbox' name='checkbox[]'/>
排球<input name='volleyball' type='checkbox' name='checkbox[]'/>
这时候:
复制代码 代码示例:
$fav=$_POST['checkbox'];
for($i=0;i<=count($fav));$i++){
if(!is_null($checkbox[$i]))
$checkvalue=$checkbox[$i].',';}
4,文件上传
对于文件上传,一般采取的是表单提交,一定要设置表单的enctype。
enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码。
multitpart/form-data为不编码,所以文件能够按原有格式上传。
例子:
复制代码 代码示例:
<html>
<body>
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
获取内容:
复制代码 代码示例:
<?php
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
?>