在同一页面上进行的PHP民意调查与结果

问题描述:

有一个great article posted by CSS-Tricks.com描述了如何使用PHP和MySQL数据库创建民意调查。我跟着这个,为自己创造了一个很好的民意调查。我注意到在评论中提到使用AJAX在同一页面上显示结果,而不是完全独立的页面。在同一页面上进行的PHP民意调查与结果

我想知道什么是在同一页面上显示PHP民意调查结果的最佳方式?

更新:

答案很简单。事实上,在我看来,没有AJAX的CSS-Tricks调查比较困难,因为它需要一个数据库。这个不是!

创建PHP和AJAX投票方式表决的完整的教程可以在这里看到:

http://www.w3schools.com/php/php_ajax_poll.asp

我只是想澄清如何设置阵列了两个多民意调查的选项。首先你得到“数据库”(即文本文件,而不是MySql)。

//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 multiple options 
$array = explode("||", $content[0]); 
$option1array = $array[0]; //note: these values can be text values also. If text value, nothing changes with this part of the code. 
$option2array = $array[1]; 
$option3array = $array[2]; 
$option4array = $array[3]; 

的数据存储在 “数据库”

if ($vote == 'option1') 
    { 
    $option1array = $option1array + 1; 
    } 
if ($vote == 'option2') 
    { 
    $option2array = $option2array + 1; 
    } 
if ($vote == 'option3') 
    { 
    $option3array = $option3array + 1; 
    } 
if ($vote == 'option4') 
    { 
    $option4array = $option4array + 1; 
    } 

然后,输出结果。对于文件结构和AJAX脚本,see the complete tutorial.

你有两个选择:

1)使用Ajax就像你在你的问题建议,当你通过AJAX提交表决时,得到的结果作为响应返回。

2)在提交投票前得到结果,如果你想保持在同一页面上,它仍然需要通过ajax提交。但不是使用ajax来取回结果,因为在投票前你有结果,你可以只添加一个投票到适当的选择选项,然后使用Javascript/CSS将结果从隐藏变为显示。

+0

嗯,似乎选项一更容易,但我感觉你更喜欢选项二。为什么? –

+0

我会使用选项一,但因为在你的问题中,你说有人已经推荐AJAX,好像你正在寻找另一种解决方案。选项2中有一些漏洞,就像另一个人在您进入页面并提交投票表决之间进行投票时一样,您也不会在结果中看到该投票。 – Pitchinnate

+0

这不是我正在寻找超越AJAX的选项,而只是我不知道如何使用AJAX实现轮询来实现相同的页面结果。 –