您的位置:首页 > 其它

常用的表单控件的数据获取方式

2016-05-09 09:52 471 查看
下面介绍常用的表单控件的数据获取方式。

4.2.1 文本框

文本框是最常用的表单元素,用于输入用户名、地址、密码等(密码类型的文本框,需

要将类型设置为password)。

下面是一个简单的文本框表单元素:

<INPUT type=text maxLength=25 size=16 name=login >

文本框表单控件的名称为“login”,在处理页面时,可以用下面几种方法来获取:

$login //直接通过全局变量来获取数据,不推荐使用

$_GET['login'] //如果通过GET 方法提交,推荐使用

$_POST['login'] //如果通过POST 方法提交,推荐使用

4.2.2 单选按钮

单选按钮表示从多个选项中选择一个。通常情况下,同一组单选按钮的名称是一样的。

假如有多个单选按钮,在实际提交数据的时候,PHP 只会分配一个变量给该组单选按钮,看

下面的代码:

<input type="radio" name="gender" value="1" checked>

<input type="radio" name="gender" value="2" >

以上代码创建了一组两个单选按钮,按钮的名称为“gender”,但是“value”值有两个,

分别为“1”和“2”。提交后,假如用户选择了“1”,则该变量的值就为1,如果为“2”,则

变量的值也为2,依此类推,如果一组有多个选项也一样。

要获取单选按钮的值,可以采用下面的语法:

$_GET["gender "] //通过get 方法提交

$_POST["gender "] //通过post 方法提交

提示 由于 PHP 不鼓励使用全局变量的方法,因此本书后面不会采用这种方法。

4.2.3 复选框

复选框通常能够让用户选择多个选项,比如个人爱好等。一般来说,同一组复选框按钮

的名称是不一样的,但是也可以都一样。

第4 章 PHP 与HTML 表单 145

实例 4-3 获取复选框提交的数据

本实例由两个文件组成,第1 个为表单文件,文件名为checkbox.htm,如代码4-6 所示;

第2 个为提交数据获取页面,文件名为showcheckbox.php,如代码4-7 所示。

【代码 4-6】 checkbox.htm

<html>

<head>

<title>

爱好调查表

</title>

</head>

<body>

你的爱好:<br>

<form method=get action="showcheckbox.php">

<input type="checkbox" name="dance" value="dance" >跳舞<br>

<input type="checkbox" name="tour" value="tour" >旅游<br>

<input type="checkbox" name="sing" value="sing" >唱歌<br>

<input type="checkbox" name="ball" value="ball" >打球<br>

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

<input type="reset" name="reset" value="重填">

<br>

</body>

<html>

Checkbox.htm 的运行界面如图4-5 所示。

你的爱好:

跳舞
旅游
唱歌
打球

图 4-5 checkbox.htm 的运行界面

以上的一组复选框,由于名称都不一样。与其他表单属性不同,即如果该复选框没有被

选中,则PHP 不会为其分配变量。因此如果直接获取它的值,系统会报错。

【代码 4-7】 showcheckbox.php

<?php

echo $_GET['dance'];

echo $_GET['tour'];

echo $_GET['sing'];

echo $_GET['ball'];

?>

同前面介绍的方法一样,因为是通过GET 方法提交,因此用$_GET 来获取数据。因为4

个复选框名称不一样,因此用了4 个不同的变量来输出。在图4-5 中,选中“旅游”和“打

球”两项。然后单击“提交”按钮,执行的结果如图4-6 所示。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

 <head>

  <title> showcheckbox.php </title>

  <meta charset="UTF-8">

  <meta name="Author" content="">

  <meta name="Keywords" content="">

  <meta name="Description" content="">

 </head>

 <body>

<?php

echo $_GET['dance'];

echo $_GET['tour'];

echo $_GET['sing'];

echo $_GET['ball'];

?>

 </body>

</html>

dancetoursing

( ! ) Notice: Undefined index: ball in D:\LearnWebDevelop\php\MyPhpExse\showcheckbox.php on line
16
Call Stack
#TimeMemoryFunctionLocation
10.0021370280{main}( )..\showcheckbox.php:0
 

图 4-6 showcheckbox.php 的执行结果

从图中可以看出,由于其中有两个表单没有提交数据,因此出现了错误。为了解决这个

问题,需要判断该变量是否为空。

实例 4-4 安全获取复选框提交的数据

本实例由两个文件组成,一个为前台的文件,如代码4-6 所示,但要将checkbox.htm 名

称改为checkbox1.htm,然后将代码中的<form method=get action="showcheckbox.php">修改为

<form method=get action="showcheckbox1.php">,其他代码不变。另一个文件为获取数据文件,

文件名为checkbox1.php,如代码4-8 所示。

【代码 4-8】 showcheckbox1.php

<?php

if (!empty($_GET['dance']))

echo $_GET['dance'] . "<br>";

if (!empty($_GET['tour']))

echo $_GET['tour']. "<br>";

if (!empty($_GET['sing']))

echo $_GET['sing'] . "<br>";

if (!empty($_GET['ball']))

echo $_GET['ball'] . "<br>";

?>

在浏览器中输入“http://localhost/chap04/checkbox1.htm”,显示的界面同图4-5 一样。然

后选择“旅游”和“打球”两个复选框,接着单击“提交”按钮,则会出现如图4-7 所示的

界面。

在浏览器中输入“http://localhost/chap04/checkbox1.htm”,显示的界面同图4-5 一样。然

后选择“旅游”和“打球”两个复选框,接着单击“提交”按钮,则会出现如图4-7 所示的

界面。

图 4-7 showcheckbox1.php 的执行结果

从图 4-7 中可以看出,代码没有错误,而且输出了用户选择的内容。但是这样处理

会很复杂,需要对每个字段都要判断是否为空,接下来介绍一种快速获得复选框提交值

的方法。

提示

在实际编程中,这样判断比较麻烦。因为这样的错误警告属于提示级别,

不影响整个程序的运行,因此如果不想这样繁琐,可以在php.ini 文件中,设置

错误报告的级别。将error_reporting 设置为E_ALL &~(E_NOTICE),表示会出

现警告问题和错误问题,而提示问题不显示。

修改过之后,再运行实例 4-3,则不会出现提示。

第4 章 PHP 与HTML 表单 147

实例 4-5 快速获取复选框提交的数据

快速获取复选框提交数据的方法是将所有的复选框名称统一,即所有的复选框名称相同,

而值(value)设置不同。本实例由两个文件组成,一个为前台文件,用于显示表单,文件名

为checkbox2.htm,如代码4-9 所示;另一个文件名为showcheckbox2.php,显示提交的复选

框选项,如代码4-10 所示。

【代码 4-9】 checkbox2.htm

<html>

<head>

<title>

爱好调查表

</title>

</head>

<body>

你的爱好:<br>

<form method=get action="showcheckbox2.php">

<input type="checkbox" name="hobby[]" value="dance" >跳舞<br>

<input type="checkbox" name="hobby[]" value="tour" >旅游<br>

<input type="checkbox" name="hobby[]" value="sing" >唱歌<br>

<input type="checkbox" name="hobby[]" value="ball" >打球<br>

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

<input type="reset" name="reset" value="重填">

<br>

</body>

<html>

此处的表单名称为“hobby[]”而不是简单的“hobby”,这是因为PHP 会自动将名称相同

的表单控件提交的值保存在数组中,如果不加上“[]”,则系统默认只保存一个值。

如果要获取所有提交的数值,只需要通过foreach 语句就可以实现了,实现代码如代码

4-10 所示。

【代码 4-10】 showcheckbox2.php

<?php

echo "你的爱好如下:";

if (!empty($_GET['hobby']))

foreach ($_GET['hobby'] as $hobby)

echo($hobby . "<br>");

?>

showcheckbox2 的执行结果如图4-8 所示。

图 4-8 showcheckbox2.php 执行结果

148 PHP 网络编程技术与实例

从 showcheckbox2.php 简单的处理结果可以看出,通过将所有的复选框名称改成一样的

之后,就很容易进行处理了。

4.2.4 列表框

列表框控件用于让用户进行单项或者多项选择。创建一个列表框可以通过select 和option

关键字来实现。通常列表框可以用来进行多选和单选。

实例 4-6 获取列表框提交的数据

本实例用于获取列表框提交的数据,由两个文件组成,前台文件名为select.htm,如代码

4-11 所示,后台文件名为showselect.php,如代码4-12 所示。

【代码 4-11】 select.htm

<html>

<head>

<title>

选择月份

</title>

</head>

<body>

选择月份:<br>

<form method=post action="showselect.php">

<select name="bmonth">

<option value="01" selected>1</option>

<option value="02">2</option>

<option value="03">3</option>

<option value="04">4</option>

<option value="05">5</option>

<option value="06">6</option>

<option value="07">7</option>

<option value="08">8</option>

<option value="09">9</option>

<option value="10">10</option>

<option value="11">11</option>

<option value="12">12</option>

</select>

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

<input type="reset" name="reset" value="重填">

<br>

</body>

<html>

以上列表框保存了一年中的12 个月,如果需要选择哪个月份,可以通过鼠标选择,其中

第1 个月被默认选中。但是以上的定义只能是单选的,不能多选。

代码 4-11 的执行结果如图4-9 所示。

虽然列表框有多个选项,但是只有一个名称即“bmonth”,PHP 对单选列表框进行处理

的时候,直接通过该名称来获取提交值,它的值就是被用户选中的“value”属性的值。

第4 章 PHP 与HTML 表单 149

【代码 4-12】 showselect.php

<?php

echo "你选择的月份是:<BR>";

echo $_POST['bmonth'] . " 月";

?>

Showselect.php 的执行结果如图4-10 所示。

图 4-9 select.htm 的执行结果 图4-10 Showselect.php 的执行结果

以上介绍的是单选列表框的数据处理方法,列表框可以进行多选。在进行多项选择的时

候,只需要在该元素后面添加“multiple”属性。

实例 4-7 获取列表框提交的多个选项

本实例获取列表框提交的多个选项。由两个文件组成,前台文件名为select1.htm,如代

码4-13 所示;后台文件名为showselect1.php,如代码4-14 所示。

【代码 4-13】 select1.htm

…省略部分代码

<form method=post action="showselect1.php">

<select name="bmonth[]" multiple size=12>

<option value="01" selected>1</option>

<option value="02">2</option>

<option value="03">3</option>

<option value="04">4</option>

<option value="05">5</option>

<option value="06">6</option>

<option value="07">7</option>

<option value="08">8</option>

<option value="09">9</option>

<option value="10">10</option>

<option value="11">11</option>

<option value="12">12</option>

</select>

…省略部分代码

其中“size=12”表示的是列表框的高度为12,这样方便用户选择。select1.htm 的执行结

果如图4-11 所示(可以按住CTRL 键在图中进行多选)。

细心的读者会发现,在定义多选列表框的时候,将其名称定义为了数组的形式即

“bmonth[]”,这是因为PHP 在进行多选列表框数据处理的时候,将被选中的数据以数组的形

式保存。如果名称只是简单的“bmonth”,虽然用户能够进行多选,但是提交到服务器之后,

实际得到的将是最后选择的值,其他值并没有被PHP 捕捉到。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

 <head>

  <title> selectArray.php </title>

  <meta charset="UTF-8">

  <meta name="Author" content="">

  <meta name="Keywords" content="">

  <meta name="Description" content="">

 </head>

 <body>

<form method="post" action="">

<select name="bmonth[]" multiple size=12>

<option value="01" selected>1</option>

<option value="02">2</option>

<option value="03">3</option>

<option value="04">4</option>

<option value="05">5</option>

<option value="06">6</option>

<option value="07">7</option>

<option value="08">8</option>

<option value="09">9</option>

<option value="10">10</option>

<option value="11">11</option>

<option value="12">12</option>

</select>

<input type="submit">

</form>

<?php

if(isset($_POST))

{

var_dump($_POST);

}

?>

 </body>

</html>

123
456
789
101112

array
'bmonth' =>
array
0 =>  '03' (length=2)
1 =>  '05' (length=2)
2 =>  '09' (length=2)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

 <head>

  <title> selectArray2.php </title>

  <meta charset="UTF-8">

  <meta name="Author" content="">

  <meta name="Keywords" content="">

  <meta name="Description" content="">

 </head>

 <body>

<form method="post" action="">

<select name="bmonth" multiple size=12>

<option value="01" selected>1</option>

<option value="02">2</option>

<option value="03">3</option>

<option value="04">4</option>

<option value="05">5</option>

<option value="06">6</option>

<option value="07">7</option>

<option value="08">8</option>

<option value="09">9</option>

<option value="10">10</option>

<option value="11">11</option>

<option value="12">12</option>

</select>

<input type="submit">

</form>

<?php

if(isset($_POST))

{

var_dump($_POST);

}

?>

 </body>

</html>

123
456
789
101112

array
'bmonth' =>  '09' (length=2)


4.2.5 隐藏字段

隐藏字段是允许用户把辅助信息附加到窗体上的完全不可见的控件。也就是说,隐藏字

段将出现在浏览器的窗口中,但是用户无法修改,而且也不会受这些隐含字段的影响。通常

这些字段是不可见的。

隐藏字段的表单控件的 HTML 语法结构如下:

<input type="hidden" name="age" value="20">

其中type="hidden"指定了该控件是隐藏控件,后面的name 和value 属性同其他控件的定

义是一样的。

隐藏字段通常用在页面跟踪的过程中。比如有时候需要将一个用户的姓名、密码、年龄

等信息传到下一页,但是又不想这些信息被显示出来,此时可以使用隐含字段来实现。

实例 4-8 获取隐藏字段值

本实例演示如何获取隐藏字段的值。由两个文件组成,前台文件名为hide.php,如代码

4-15 所示;后台文件名为showhide.php,如代码4-16 所示。

【代码 4-15】 hide.php

<html>

<head>

<title>

隐藏字段

</title>

</head>

<body>

第4 章 PHP 与HTML 表单 151

<?php

$username="dog";

?>

<form method=get action="showhide.php">

帐号:<INPUT maxLength=25 size=16 name=login ><br>

<input type="hidden" name="hidename" value="<?php print 'hello'; ?>">

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

<input type="reset" name="reset" value="重填">

</body>

<html>

提示 因为 hide.php 文件中使用了php 代码所以文件名不能使用hide.htm。

【代码 4-16】 showhide.php

<?php

//获取隐藏字段信息

echo "你的隐藏字段信息为:<br>";

echo $_GET['hidename'] ;

?>

执行结果如图4-13 所示。

图 4-13 获取隐藏字段信息
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: