PHP与JavaScript对多项选择的处理
}
echo '<tr><td><input name="action" type="hidden" value="vote"><BR><input name="submit" type="submit" value="投票"> <input name="reset" type="reset" value="重置"></td></tr> ';
echo "</form> </table>";
copyright dedecms
?>
<!-- 现在编写javascript程序初步验证用户表单,只允许用户选择两个项目 -->
<script langvage="javascript">
<!--
function checkform(myform){
checkedcount=0;
//循环检测复选框是否选中,若是,checkedcount加1:
for(i=1;i<=<?php echo $itemNo ?>;i ){
mycheck=eval("myform.check" i); //mycheck是复选框对象
if(mycheck.checked==true){
checkedcount ;
}
}
if(checkedcount==2){ //如果只有两个复选框选中,就提交;
return true;
}else{ //否则发出警告:
alert("对不起,您只能投两个项目!");
return false;
}
}
-->
</script>
<?
}
//这是处理用户投票的页面
else if($action="vote"){ 内容来自dedecms
//在客户端用javascript检验数据是不安全的,但是可以减轻服务器负担和不用浪费用户时间。
//在服务器再次进行验证经常是必要的。
$itemcount=$db->getfirst("select count(*) as count from itemtable"); //取得项目总数
$checkarray=array();
for($i=1;$i<=$itemcount["count"];$i ){ //和javascript处理的过程是不是很像呢
$mycheck="check$i"; $mycheck=$$mycheck;
if($mycheck && $db->getfirst("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;$i<count($checkarray);$i ){
$db->query("update itemtable set votes=votes 1 where id='$checkarray[$i]'");
} //把投票用户的IP记入数据库:
$db->query("insert into iptable (voteip) values ('$_SERVER[REMOTE_ADDR]')");
echo "投票成功,谢谢您的参与!";
}else{ //否则:
echo "对不起,您只能投两个项目!";
}
}

文章评论
共有位Admini5网友发表了评论 查看完整内容