Я работаю над этим уже несколько дней, но не могу найти ответ. У меня есть веб-страница, которая отображает вопрос и ответы на выбор, и когда вы нажимаете «Отправить», он переходит к следующему вопросу. Проблема заключается в попытке отобразить результаты после каждого вопроса в виде гистограммы на веб-странице. Я пытаюсь заставить сервер нажать один вопрос первым, и когда ответ выбран, диаграмма обновляется в реальном времени. Я прошел через множество сокетов с 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
Если график отображается из базы данных, он не обновляется в реальном времени. Я хочу, чтобы график обновлялся после ввода пользователя. Любые идеи будут очень полезны.
Задача ещё не решена.
Других решений пока нет …