美好的一天。
我正在进行投票,投票将使用ajax显示。 举例来说,我有3个民意调查:民意调查1,民意调查2,民意调查3。 您必须单击轮询1的链接以显示轮询1的结果,其中由于ajax,页面将不会重新加载。 结果以百分比显示。
以下是摘录。
$poll_response = query($con, "SELECT *FROM `responses` WHERE `id` = '{$poll_id}'");
$count_response = rows($poll_response);
if($count_response > 0)
{
$responses_array = array();
for($j=1;$j<=$count_response;$j++)
{
$fetch = fetch($poll_response);
$response = $fetch['response'];
$responses_array[] = $response;
}
$responses_values = array_count_values($responses_array);
$min_value = min($responses_values);
foreach($responses_values as $value=>$count_value)
{
?>
<div id='votes'> </div>
<script type="text/javascript">
var percent_num,width,min_val;
var each_count = "<?php echo $count_value;?>";
var total = "<?php echo $count_response;?>";
var response = "<?php echo ucfirst($value);?>";
var min_val = "<?php echo $min_value;?>";
if(each_count > 0)
{
percent_num = ( (each_count *100)/total);
percent_num = Math.round(percent_num);
width = percent_num*2;
}
else
{
width = 1;
percent_num = 0;
}
if(total > 0)
{
var votes = $("#votes");
votes.html("<table width='50%'><tr><td width='25%'>"+response+"</td><td> <img src='../images/poll_green.jpg' width="+width+" height=20 border=10/> "+percent_num+"% </td><td><span class='badge'>"+each_count+"</span></td><br/></tr></table>");
}
else
{
document.write("<div class='alert alert-danger'>No result yet</div>");
}
</script>
<?php
}
?>
上面代码的问题是它只在数据库中显示一条记录。 举例来说,如果你点击Poll 1和Poll 1的链接就这样:
您最喜欢哪个电脑品牌? 一个)。生命值 B)戴尔 C)宏基。 D)三星
有10人投票支持惠普,4人投票给戴尔,7人投票给宏基,15人投票给三星。
它应该显示每个计算机品牌的标题,包括投票数和百分比,这意味着将显示4条记录,但是,如果ajax是ajax,它只显示戴尔的票数和百分比。使用,但它显示所有计算机品牌的投票数和百分比通常如果只使用PHP
请问,这可能是什么原因以及可能的解决方案?
由于
答案 0 :(得分:0)
我认为你没有在这里将值添加到你的响应数组
$responses_array[] = $response;
我会尝试递增索引。
for($j=1;$j<=$count_response;$j++)
{
$fetch = fetch($poll_response);
$response = $fetch['response'];
$responses_array[j] = $response;
}
答案 1 :(得分:0)
试试这个
$responses_array[j] = $fetch['response'];
而不是
$response = $fetch['response'];
$responses_array[] = $response;