I am trying to write a poll function that loads the results and displays it in the same page without refreshing. I am using google charts api and jquery ajax.
main page I have this:
Code:
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load('visualization', '1.0', {'packages':['corechart']});
google.setOnLoadCallback(function(){ $("#poll_yes").removeAttr('disabled'); });
function drawChart(rows)
{
// Create the data table.
var data = new google.visualization.DataTable();
data.addColumn('string', 'Answers');
data.addColumn('number', 'Number');
data.addRows(rows);
// Set chart options
var options =
{
'title' :'Do you Like my poll?',
};
var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
jQuery(document).ready(function() {
$.ajaxSetup ({
cache: false
});
var ajax_load = "<img src='images/loading.gif' alt='loading...' />";
$("#poll_yes").click(function(){
$("#result").html(ajax_load);
$.post(
"query.php",
{answer: "yes", poll_id: 5},
function(response){
drawChart(response);
}
);
});
});
</script>
<input type="submit" value="yes" disabled="disabled" id="poll_yes"/>
<div id="result"><div id="chart_div"> </div></div>
At the momemnt in my query.php page I just have it spitting out fake JSON data:
Code:
<?php
if(isset($_POST['answer']))
{
echo "{\"yes\": 14,\"no\": 9}";
}
else
{
echo "{\"yes\": 9,\"no\": 14}";
}
?>
After I hit the 'yes' button all it does is show the ajaxloader.gif image.
I'm feeling very frustrated and cannot for the life of me figure out why this is happening. Any help is appreciated =)