Posts Tagged ‘同一’

同一个页面用多个id有什么影响

星期三, 06月 4th, 2008

我知道在样式表定义一个样式de时候,可以定义id也可以定义class,例如:

ID方法:#test{color:#333333},在页面中调用内容


CLASS方法:.test{color:#333333},在页面中调用内容
id一个页面只可以使用一次,class可以多次引用.

有网友问,id和class好象没什么区别,我在页面中用了多个id在IE中显示也正常,用多个id有什么影响吗?

回答:第一影响就是不能通过W3de校验.

在页面显示上,目前de浏览器还都允许您犯这个错误,用多个相同ID“一般情况下”也能正常显示.但是当您需要用JavaScript通过id来控制这个div,那就会出现错误.

id是一个标签,用于区分不同de结构和内容,就象您de名字,如果一个屋子有2个人同名,就会出现混淆;
class是一个样式,可以套在任何结构和内容上,就象一件衣服;
概念上说就是不一样de:
id是先找到结构/内容,再给它定义样式;class是先定义好一种样式,再套给多个结构/内容.

web标准希望大家用严格de习惯来写相关代码,

例如:您可以用显示粗体,也可以用来显示,但W3C 建议大家用,因为更有语义

如果对这些细节问题不重视,觉得无所谓,
那么您就没必要向xml过渡了,也没必要学习web标准了,因为web标准应用就是从这些小细节上de改变开始,否则用现在dehtml不是也可以?

在同一窗体中使用PHP来处理多个提交任务

星期一, 06月 2nd, 2008

在PHP中de处理窗体数据比其它网页程序语言更简单——如果您使用这种语言一段时间后,您会发现这是一个不可争辩de事实.这种操作de简易性使它可以容易地处理更为复杂de窗体事件,包括今天讨论de主题,即在同一个窗体中通过多个按钮来处理不同de任务.

为什么使用多个提交任务?
在我回答这个问题之前,先让我回答一个很显然de问题:既然许多窗体更适合单一de提交按钮,为什么有时人们需要de是两个(或者是更多)de提交按钮?

对这一问题最好de解释方法是用我最近开发项目中de一个实例来说明.在这一项目中,我de任务是给一个图书馆建立一个详细目录查询系统.书籍题目被储存在数据库中,而管理员将可以使用一个基于浏览器功能de界面来查看其中任何一本书de记录,然后对这一记录上选择执行四种操作之一:成员还书登记,成员借书登记,书本丢失记录以及书本销售记录.

以上所有任务都要通过一个独立窗体来处理,这样就需要相应de按钮来响应这些任务.传入到窗体de数据将以不同de方式处理,这取决于被点击de按钮(借书/还书和成员记录相互关联;丢失/销售记录改变详细目录表).由于一个窗体只能处理一个唯一de任务,但是相同dePHP脚本可以根据被点击de按钮和执行合适de相关代码段来处理以上四种任务.因此就需要处理多个提交任务按钮de单一窗体,以及实现不同按钮de自动响应de窗体处理相关代码段.

我首先列举一个简单例子:一个提交按扭de窗体.这样能够让您清楚地理解基本概念,并且为将要讲述de复杂例子打下铺垫.这里是一个窗体:

<html><head>Single-button form</head>
<body>

<form action=”processor.php” method=”post”> Enter a number: <input type=”text” name=”number” size=”3″> <br>
<input type=”submit” name=”submit”> </form>

</body>
</html>

以下de是调用提交任务deprocessor.php脚本:

<?php

// check for submission
// retrieve value from posted data
if ($_POST['submit'])
{
echo “You entered the number ” . $_POST['number']; }

?>

当一个窗体被提交给PHP脚本时,根据使用de提交方法(本文我假设为POST),PHP自动建立一个特定de$_POST或者$_GET数组.键入到窗体输入域内de数值会自动转化成数组中de关键数据,并可以使用常规数据符号来访问这些数据.

特别值得注意de是,如何在以上脚本中处理提交任务de按扭.当窗体被提交时,提交按钮根据自己实际de“name”转变成$_POST中de一个元素.添加以下一行相关代码就很清楚了:

print_r($_POST);

为了了解以上PHP脚本,您可以查看数组de内部结构,并可以清楚地看到不同窗体控件之间de相互联系.