1 Ajax Poll Without Database 22nd January 2010, 3:11 pm
SkipSoft
MITR New User
Now, I tell you “how to create ajax poll without database”. You can use this code in your web or blog. Browser will automatically display your ajax poll. It is very sample and useful. Check the following.
This is the HTML page. It contains a simple HTML form and a link to a JavaScript:
<html>
<head>
<script src=”haiouspoll.js”></script>
</head>
<body>
<div id=”poll”>
<h2>Do you like PHP and AJAX so far?</h2>
<form> Yes: <input type=”radio” name=”vote”
value=”0″ onclick=”getVote(this.value)”>
<br />No: <input type=”radio” name=”vote”
value=”1″ onclick=”getVote(this.value)”> </form>
</div>
</body>
</html>
The text file (poll_result.txt) is where we store the data from the poll. It is stored like this:
0||0
The first number represents the “Yes” votes, the second number represents the “No” votes.
The JavaScript code is stored in “haiouspoll.js” and linked to in the HTML document:
var xmlHttp;
function getVote(int)
{
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert (”Browser does not support HTTP Request”);
return;
}
var url=”poll_vote.php”;
url=url+”?vote=”+int;
url=url+”&sid=”+Math.random();
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open(”GET”,url,true);
xmlHttp.send(null);
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState==”complete”)
{
document.getElementById(”poll”).
innerHTML=xmlHttp.responseText;
}
}
function GetXmlHttpObject()
{
var objXMLHttp=null;
if (window.XMLHttpRequest)
{
objXMLHttp=new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
objXMLHttp=new ActiveXObject(”Microsoft.XMLHTTP”);
}
return objXMLHttp;
}
The server page called by the JavaScript code is a simple PHP file called “poll_vote.php”. You must need “poll.gif”.
<?php
$vote = $_REQUEST['vote'];
//get content of textfile
$filename = “poll_result.txt”;
$content = file($filename);
//put content in array
$array = explode(”||”, $content[0]);
$yes = $array[0];
$no = $array[1];
if ($vote == 0)
{
$yes = $yes + 1;
}
if ($vote == 1)
{
$no = $no + 1;
}
//insert votes to txt file
$insertvote = $yes.”||”.$no;
$fp = fopen($filename,”w”);
fputs($fp,$insertvote);
fclose($fp);
?>
<h2>Result:</h2>
<table>
<tr>
<td>Yes:</td>
<td>
<img src=”poll.gif”
width=’<?php echo(100*round($yes/($no+$yes),2)); ?>’
height=’20′>
<?php echo(100*round($yes/($no+$yes),2)); ?>%
</td>
</tr>
<tr>
<td>No:</td>
<td>
<img src=”poll.gif”
width=’<?php echo(100*round($no/($no+$yes),2)); ?>’
height=’20′>
<?php echo(100*round($no/($no+$yes),2)); ?>%
</td>
</tr>
</table>
This is the HTML page. It contains a simple HTML form and a link to a JavaScript:
<html>
<head>
<script src=”haiouspoll.js”></script>
</head>
<body>
<div id=”poll”>
<h2>Do you like PHP and AJAX so far?</h2>
<form> Yes: <input type=”radio” name=”vote”
value=”0″ onclick=”getVote(this.value)”>
<br />No: <input type=”radio” name=”vote”
value=”1″ onclick=”getVote(this.value)”> </form>
</div>
</body>
</html>
The text file (poll_result.txt) is where we store the data from the poll. It is stored like this:
0||0
The first number represents the “Yes” votes, the second number represents the “No” votes.
The JavaScript code is stored in “haiouspoll.js” and linked to in the HTML document:
var xmlHttp;
function getVote(int)
{
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert (”Browser does not support HTTP Request”);
return;
}
var url=”poll_vote.php”;
url=url+”?vote=”+int;
url=url+”&sid=”+Math.random();
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open(”GET”,url,true);
xmlHttp.send(null);
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState==”complete”)
{
document.getElementById(”poll”).
innerHTML=xmlHttp.responseText;
}
}
function GetXmlHttpObject()
{
var objXMLHttp=null;
if (window.XMLHttpRequest)
{
objXMLHttp=new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
objXMLHttp=new ActiveXObject(”Microsoft.XMLHTTP”);
}
return objXMLHttp;
}
The server page called by the JavaScript code is a simple PHP file called “poll_vote.php”. You must need “poll.gif”.
<?php
$vote = $_REQUEST['vote'];
//get content of textfile
$filename = “poll_result.txt”;
$content = file($filename);
//put content in array
$array = explode(”||”, $content[0]);
$yes = $array[0];
$no = $array[1];
if ($vote == 0)
{
$yes = $yes + 1;
}
if ($vote == 1)
{
$no = $no + 1;
}
//insert votes to txt file
$insertvote = $yes.”||”.$no;
$fp = fopen($filename,”w”);
fputs($fp,$insertvote);
fclose($fp);
?>
<h2>Result:</h2>
<table>
<tr>
<td>Yes:</td>
<td>
<img src=”poll.gif”
width=’<?php echo(100*round($yes/($no+$yes),2)); ?>’
height=’20′>
<?php echo(100*round($yes/($no+$yes),2)); ?>%
</td>
</tr>
<tr>
<td>No:</td>
<td>
<img src=”poll.gif”
width=’<?php echo(100*round($no/($no+$yes),2)); ?>’
height=’20′>
<?php echo(100*round($no/($no+$yes),2)); ?>%
</td>
</tr>
</table>