上一次写的是留言板程序,今天做了个投票,结构都一样
但传送数据的方式有点不一样,先前是直接传的表单子元素
这次传的是表单对象
<?php
################################################################################
#
# 文 件 名: vote.php
# 程序说明: 偶的ajax投票
# 创建时间: 2006-1-2 1:01
#
# 程序设计: Jzealot
# E-mail: web-xy@163.com
#
################################################################################
require ('../libs/xajax/xajax.inc.php');//包含xajax库
require("conn_inc.php");
/**
*提交投票
*/
function processVote($formData){
global $db;
$id = $formData["vote_id"];
$a = $formData["voteitem"];
$db->query("update vote set $a=$a+1 where id=".$id);
$objResponse = new xajaxResponse();
return $objResponse->getXML();
}
/**
*获取投票
*/
function getVote(){
global $db;
$rs = $db -> query("select * from vote where id=1");
$title = $db->fetch_field($rs,0,"title");
$str = "";
$str .=$title."<br>";
for ($i = 1; $i < 6; $i++) {
$opname = "a".$i;
$opvalue = $db->fetch_field($rs,0,"a".$i);
$oplabel = $db->fetch_field($rs,0,"s".$i);
$str .=" <input type=/"radio/" name=/"voteitem/" value=/"".$opname."/">".$oplabel."(".$opvalue.")<br>";
}
$str .="<input type=/"hidden/" name=/"vote_id/" value=/"".$db->fetch_field($rs,0,"id")."/">";
$str .="<input type=/"submit/" value=/"vote/">";
$objResponse = new xajaxResponse();
$objResponse->addAssign("vvv","innerHTML",$str);
return $objResponse->getXML();
}
$xajax = new xajax(); //初始化xajax类
$xajax->registerFunction("processVote");
$xajax->registerFunction("getVote");
$xajax->processRequests();//提交请求
?>
<html>
<head>
<title>ajax之投票</title>
<?php $xajax->printJavascript(); // 生成ajax脚本,必须放在head内 ?>
</head>
<body οnlοad="xajax_getVote();return false;">
<form id="voteForm" οnsubmit="xajax_processVote(xajax.getFormValues(this));xajax_getVote();return false;";>
<div id="vvv" name="vvv">
</div>
</form>
</body>
</html>
说两句:
一张页面就可完成查看和提交,投票时,看不到页面在动,但能看到数据在动,呵呵,是不是很爽?