Posts Tagged ‘选择’

动态CSS站点教程:多个页面样式提供浏览者选择

星期三, 06月 4th, 2008

在cnbruce’’s blog上看到这个即时换STYLEde相关代码,觉得不错就COPY过来备用.
在见de例子就是:一个站点上有多个页面样式提供浏览者选择.同时,在选择了某样式后,再次打开该页面时,将仍然保持该样式.自然会想到了Cookie技术.


程序相关代码
<HTML>
<HEAD>
<link ID=”skin” rel=”stylesheet” type=”text/css”>
<TITLE>换肤技术</TITLE>
<SCRIPT LANGUAGE=javascript>
<!–
function SetCookie(name,value){
var argv=SetCookie.arguments;
var argc=SetCookie.arguments.length;
var expires=(2<argc)?argv[2]:null;
var path=(3<argc)?argv[3]:null;
var domain=(4<argc)?argv[4]:null;
var secure=(5<argc)?argv[5]:false;
document.cookie=name “=” escape(value) ((expires==null)?”":(”; expires=” expires.toGMTString())) ((path==null)?”":(”; path=” path)) ((domain==null)?”":(”; domain=” domain)) ((secure==true)?”; secure”:”");
}

function GetCookie(Name) {
var search = Name “=”;
var returnvalue = “”;
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search);
if (offset != -1) {
offset = search.length;
end = document.cookie.indexOf(”;”, offset);
if (end == -1)
end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset,end));
}
}
return returnvalue;
}

var thisskin;
thisskin=GetCookie(”nowskin”);
if(thisskin!=”")
skin.href=thisskin;
else
skin.href=”css.css”;

function changecss(url){
if(url!=”"){
skin.href=url;
var expdate=new Date();
expdate.setTime(expdate.getTime() (24*60*60*1000*30));
//expdate=null;
//以下设置COOKIES时间为1年,自己随便设置该时间..
SetCookie(”nowskin”,url,expdate,”/”,null,false);
}
}
//–>
</SCRIPT>
</HEAD>
<BODY>

<P>请选择下面de下拉菜单测试换肤效果</P>

<a href=# onclick=”changecss(”css.css”)”>css.css</a>
<a href=# onclick=”changecss(”css1.css”)”>css1.css</a>
<a href=# onclick=”changecss(”css2.css”)”>css2.css</a>
<a href=# onclick=”changecss(”css3.css”)”>css3.css</a>
<br>

<select onchange=”changecss(this.value)”>
<option>选择样式单文件</option>
<script language=”javascript”>
var csss=new Array();
csss[0]=”css.css”;
csss[1]=”css1.css”;
csss[2]=”css2.css”;
csss[3]=”css3.css”;
var i;
for(i=0;i<4;i )
if(thisskin==csss[i])
document.write(”<option value=\”" csss[i] “\” selected>” csss[i] “样式单文件</option>”);
else
document.write(”<option value=\”" csss[i] “\”>” csss[i] “样式单文件</option>”);
</script>
</select>
</BODY>
</HTML>

利用 window

星期一, 06月 2nd, 2008

请参考这个程序:
<?php
//$day 星期几,如:星期三
$day=3;
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>test</title>
</head>
<body onload="window.form1.day.value=’<?php echo $day ; ?>’">
<FORM action="" method=POST id=form1 name=form1>
<SELECT id=day name=day size="1">
<option value="1">星期一</option>
<option value="2">星期二</option>
<option value="3">星期三</option>
<option value="4">星期四</option>
<option value="5">星期五</option>
<option value="6">星期六</option>
<option value="7">星期日</option>
</SELECT>
</FORM>
</body>
</html>
触类旁通,利用 window_onload 可以很巧妙de实现一些默认项de选取.
希望对大家有所帮助.
请笑纳.

PHP与

星期一, 06月 2nd, 2008

  我经常要给用户作出多项选择进行处理,例如允许用户对列表项选择多项后删除选定项等.今天举个例子说明PHP和JavaScript分别是怎样处理多项选择de.今天我做de是一个投票系统,对MySQL数据库itemtable表里de项目进行投票,且每个别IP能且只能投两票.


  表itemtable是通过以下MySQL语句建立de:

CREATE TABLE `itemtable` (
`id` TINYINT( 4 ) NOT NULL AUTO_INCREMENT,
`name` VARCHAR( 50 ) NOT NULL ,
`votes` SMALLINT( 6 ) NOT NULL ,
PRIMARY KEY ( `id` )
);

其中字段“name”是列表项目名,“votes”是所得票数.我还要建立一个表“voteiptable”来记录投票用户deIP:

CREATE TABLE `voteiptable` (
`id` SMALLINT( 6 ) NOT NULL ,
`voteip` VARCHAR( 15 ) NOT NULL,
PRIMARY KEY ( `id` )
);

下面我编写文件“multivote.php”,今天我要用到一个数据库类文件“dbclass.php”.



  我可以发现,客户端deJavaScript和服务器端dePHP对多项选择de处理有很多相似之处,当然也有不同.这是比较经典de多选项处理de程序,如果不限定用户de选项de话就更简单了.

php实现首页自动选择语言转跳

星期一, 06月 2nd, 2008

很多网站在首页上做一些链接,让用户来选择将要访问de各自de语言页面,让中国人选择“中文”,韩国人选择“朝鲜语”,等等.那么能不能做程序来自动帮助选择呢?
答案是肯定de,大家都在用google,您用中文系统打开googlede首页,打开de自然是中文首页,而不会是其他语言.因为google会自动判断用户系统使用de首选语言是什么.
怎样才能做到像google那样呢,其实很简单,
在浏览器发给web服务器de HTTP Headers Information 中包含了这样一个信息 Accept-Language
这个信息就是,浏览器中 工具->Internet选项->常规 下de 语言, 它就是用来设置浏览器可接受de语言首选项de, 它可以是多种可接受语言de优先排序列.
下面以PHP为例,
用户可接受de语言信息,放在$_SERVER['HTTP_ACCEPT_LANGUAGE']里,
变量信息是类似这样de "zh-cn", 如果是多语言列,是类似 "zh-cn,en;q=0.8,ko;q=0.5,zh-tw;q=0.3"
下面de问题可以迎刃而解了.
<?php
error_reporting(E_ALL ^ E_NOTICE);
// 分析 HTTP_ACCEPT_LANGUAGE de属性
// 这里只取第一语言设置 (其他可根据需要增强功能,这里只做简单de方法演示)
preg_match(’/^([a-z\-] )/i’, $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches);
$lang = $matches[1];
switch ($lang) {
case ‘zh-cn’ :
header(’Location: [url]http://cn.example.com/[/url]‘);
break;
case ‘zh-tw’ :
header(’Location: [url]http://tw.example.com/[/url]‘);
break;
case ‘ko’ :
header(’Location: [url]http://ko.example.com/[/url]‘);
break;
default:
header(’Location: [url]http://en.example.com/[/url]‘);
break;
}
?>