繁体中文
设为首页
加入收藏
当前位置:PHP技术首页 >> PHP基础 >> PHP与JavaScript对多项选择的处理

PHP与JavaScript对多项选择的处理

2005-01-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:  我们经常要给用户作出多项选择进行处理,例如允许用户对列表项选择多项后删除选定项等。今天举个例子说明PHP和JavaScript分别是怎样处理多项选择的。今天我们做的是一个投票系统,对MySQL数据库itemtable表里...

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

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

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”来记录投票用户的IP:

CREATE TABLE `voteiptable` (

`id` SMALLINT( 6 ) NOT NULL ,

`voteip` VARCHAR( 15 ) NOT NULL,

PRIMARY KEY ( `id` )

);

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

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

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

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”来记录投票用户的IP:

CREATE TABLE `voteiptable` (

`id` SMALLINT( 6 ) NOT NULL ,

`voteip` VARCHAR( 15 ) NOT NULL,

PRIMARY KEY ( `id` )

);

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

请您投票

//包含数据库类文件:

include_once("dbclass.php")

//检查该IP是否已经投过票了:

if($db->getfirst("select * from iptable where voteip='$_SERVER[REMOTE_ADDR]'")){

echo "您已经投过票了,谢谢您的参与!";

}

//这是投票项目列表页面:

if(!$action){

echo "

";

echo "";

//我们给每个复选框起这样的名字:check1、check2、check3、……,它们的值分别是项目的id,

//这样到时候我们处理起来就比较方便了:

$myitems=$db->query("select * from itemtable");

$itemNo=0;

while($myitem=$db->getarray($myitems)){

$itemNo++;

echo "$myitem[name] \n";

}

echo '

';

echo "\n\n

";

?>

}

//这是处理用户投票的页面

else if($action="vote"){

//在客户端用javascript检验数据是不安全的,但是可以减轻服务器负担和不用浪费用户时间。

//在服务器再次进行验证经常是必要的。

$itemcount=$db->getfirst("select count(*) as count from itemtable"); //取得项目总数

$checkarray=array();

for($i=1;$igetfirst("select * from itemtable where id='$mycheck'")){

//之所以加上$db->getfirst("select * from itemtable where id='$mycheck'")是为防止所投项目id不存在

$checkarray[]=$mycheck; //如果这一项被选中,$checkarray增加一项,值为所选id

}

}

if(count($checkarray)==2){ //如果$checkarray的项数是2,则相应的票数加1:

for($i=0;$iquery("update itemtable set votes=votes+1 where id='$checkarray[$i]'");

} //把投票用户的IP记入数据库:

$db->query("insert into iptable (voteip) values ('$_SERVER[REMOTE_ADDR]')");

echo "投票成功,谢谢您的参与!";

}else{ //否则:

echo "对不起,您只能投两个项目!";

}

}

?>

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

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

责任编辑:admin
相关文章