如何在网页上显示实时图表

时间:2015-02-24 17:25:03

标签: javascript php sockets highcharts real-time

我已经在这方面工作了几天但我似乎无法找到答案。我有一个显示问题和答案的网页供您选择,当您点击提交时,它会转到下一个问题。问题是尝试将每个问题后的结果显示为网页上的条形图。我试图让服务器首先推出一个问题,当选择答案时,图表会实时更新。我已经通过php教程经历了这么多套接字,但我仍然觉得很难。我正在使用Composer来处理客户端和服务器。我尝试并测试了从服务器向客户端网页发送消息,但是当我尝试使用客户端输入进行更新时,该网页无效。

下面的测试代码计算并显示问题后的投票数。数据目前没有进入数据库,因为我一直试图这样做并且它没有进入。

    <?php 
if(isset($_GET['question'])){
$connection = mysqli_connect('localhost', 'root', '', 'quiz');
$question = preg_replace('/[^0-9]/', "", $_GET['question']);
$sql2 = mysqli_query($connection,"SELECT * FROM answers WHERE question_id='$question' ORDER BY rand()");
            while($row2 = mysqli_fetch_array($sql2)){
                $answer = $row2['answer'];
                $correct = $row2['correct'];
                $answers .= '<label style="cursor:pointer;"><input type="radio" name="rads" value="'.$correct.'" onclick="getVote(this.value)" >'.$answer.'</label>                 
                ';

                        }   
            }
$vote = isset($_GET['rads']);
                //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> 
<?php if(isset($_GET['question'])){?>
<span id="btnSpan"><button onclick="post_answer()">Submit</button></span><?php }?>
<?php

如果从数据库中显示图表,则表示不会实时更新。我想在用户输入后更新图表。任何想法都会非常有用。

0 个答案:

没有答案