结合PHP使用HTML表单(3)
2008-05-01 04:45
453 查看
令人惊奇的消失的复选框
复选框只有实际被选中时才被提交,认识到这一点很重要。否则,它的消失将告诉您所需知道的实情:用户没有单击复选框。使用复选框时,您可以使用 isset() 函数显式地检查是否设置了值:
清单 7. 检查是否提交了复选框
...
$contact_value = $HTTP_GET_VARS['contact'];
echo $contact_value;
if (isset($contact_value)) {
//The checkbox was clicked
} else {
//The checkbox wasn't clicked
}
...
获取所有表单值
复选框字段只是您对预期表单值名称可能不完全有把握的情形的示例之一。通常,您会发现有一个以通用方法访问所有表单值的例程是很有用的。
幸运的是,因为 $HTTP_GET_VARS及其同类只是散列表,您可以用数组的一些特性来操作它们。例如,您可以使用 array_keys() 函数来获取所有潜在值名称的列表:
清单 8. 获取表单值名称的列表
...
$form_fields = array_keys($HTTP_GET_VARS);
for ($i = 0; $i < sizeof($form_fields); $i++) {
$thisField = $form_fields[$i];
$thisValue = $HTTP_GET_VARS[$thisField];
echo $thisField ." = ". $thisValue;
echo "<br />";
}
...
在本例中,您实际上结合了几种技术。首先,检索表单字段名称的数组并将其命名为 $form_fields。$form_fields 数组只是一个典型的数组,因此您可以使用 sizeof() 函数来确定潜在键的数目,并对每一项进行循环遍历。对于每一项,检索字段的名称然后使用该名称获取实际值。生成的 Web 页面看起来如下:
ship = Midnight Runner
tripdate = 12-15-2433
exploration = yes
crew = Array
这里有两个重要事项。第一,contact 字段根本没有返回值,这正如预期的那样。第二,crew 值(顺便说一下,您或许知道:它的名称是 crew 而不是 crew[])是一个数组而不是值。为了实际检索所有值,需要使用 is_array() 函数检测所有数组并相应地处理它们:
清单 9. 处理数组
...
for ($i = 0; $i < sizeof($form_fields); $i++) {
$thisField = $form_fields[$i];
$thisValue = $HTTP_GET_VARS[$thisField];
if (is_array($thisValue)){
for ($j = 0; $j < sizeof($thisValue); $j++) {
echo $thisField ." = ". $thisValue[$j];
echo "<br />";
}
} else {
echo $thisField ." = ". $thisValue;
}
echo "<br />";
}
...
结果是所有已实际提交的数据:
ship = Midnight Runner
tripdate = 12-15-2433
exploration = yes
crew = snertal
crew = gosny
最后一个说明:点
既然您有了能适应您提交任何表单值的表单操作页面,您就需要抽一点时间考虑一个常常让 PHP 程序员感到意外的情形。
有些情况下,设计人员会选择使用一个图形按钮而不是提交按钮,图形按钮如图 2 所示,代码如清单 10 所示。
清单 10. 添加图形按钮
...
<tr>
<td valign="top">Crew species: </td>
<td>
<select name="crew[]" multiple="multiple">
<option value="xebrax">Xebrax</option>
<option value="snertal">Snertal</option>
<option value="gosny">Gosny</option>
</select>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="image" src="button.gif" name="formbutton"/>
</td>
</tr>
</table>
...
共2页: 上一页 1 HTML'>[2] HTML'>下一页
相关文章推荐
- 结合 PHP 使用 HTML 表单
- 结合 PHP 使用 HTML 表单
- PHP编程之HTML(表单的使用)
- PHP结合HTML5使用FormData对象提交表单及上传图片
- 后台开发学习(四)HTML5表单的使用PHP环境搭载和HTML表单的提交
- PHP结合HTML5使用FormData对象提交表单及上传图片
- html表单结合php实现上传文件功能并且监控文件上传的进度
- php与html 表单的结合
- PHP中htmlentities,htmlspecialchars,urlencode和base64_encode的使用及区别
- html标签pre在php调试中使用技巧
- 结合使用 PHP 和 RSS(转-待消化...)
- Memcached学习笔记——windows上初步使用(与php结合)
- 【php基础班】第1天 editplus工具使用及HTML入门
- html 标签与 html 实体转换 与 php html 系列函数的简单使用
- php使用curl模拟浏览器表单上传文件或者图片的方法
- 使用XslCompiledTransform结合xslt转换xml为html静态页面
- php命名空间及和autoload结合使用问题。
- simplemde 使用+php获取html
- [PHP]使用PHPMailer发送带附件并支持HTML内容的邮件
- HTML5 HTML5表单与PHP的交互 (stage1-3)