这是我的代码:
<?php
// Returns a random RGB color (used to color the vote bars)
function getRandomColor2()
{
$r2 = rand(128,255);
$g2 = rand(128,255);
$b2 = rand(128,255);
$color2 = dechex($r2) . dechex($g2) . dechex($b2);
echo "$color2";
}
echo "<table id=\"tblResults2\" align=\"center\">";
// Get max vote count
$doc = new DOMDocument();
$doc->load("../vote_dir/xml/results.xml");
$maxvotes2 = 0;
$pollitems2 = $doc->getElementsByTagName("pollitem");
foreach( $pollitems2 as $pollitem2 )
{
$votes2 = $pollitem2->getElementsByTagName("votes");
$vote2 = $votes2->item(0)->nodeValue;
$maxvotes2 = $maxvotes2 + $vote2;
}
// Generate the results table
$doc = new DOMDocument();
$doc->load("../vote_dir/xml/results.xml");
$pollitems2 = $doc->getElementsByTagName("pollitem");
foreach( $pollitems2 as $pollitem2 )
{
$entries2 = $pollitem2->getElementsByTagName("entryname");
$entry2 = $entries2->item(0)->nodeValue;
$votes2 = $pollitem2->getElementsByTagName("votes");
$vote2 = $votes2->item(0)->nodeValue;
$tempWidth2 = $vote2 / $maxvotes2;
$tempWidth2 = 300 * $tempWidth2;
$votepct2 = round(($vote2 / $maxvotes2) * 100);
echo "<tr><td width=\"45%\" class=\"polls\">$entry2</td>";
echo "<td width=\"35%\" class=\"resultbar\"><div class=\"bar\" style=\"background-color: ";
getRandomColor2();
echo "; width: $tempWidth2 px;\">$votepct2%</div></td><td class=\"each_vote\" width=\"20%\">($vote2 votes)</td></tr>";
}
echo "<tr><td width=\"45%\" class=\"total\" colspan=\"3\">Σύνολο ψήφων: $maxvotes2</td>";
echo "</table>";
?>
我的问题是,当我打电话给它时,一切正常但是:
我没有颜色
显示%的所有DIV都是相同的宽度,而不是$ tempWidth2
为每个div显示固定(不同)颜色更容易吗? 谢谢
答案 0 :(得分:2)
变化:
echo "$color2";
为:
echo "#$color2"; // added #, fixes colors
......并改变:
echo "; width: $tempWidth2 px;\">$votepct2%</div></td><td class=\"each_vote\" width=\"20%\">($vote2 votes)</td></tr>";
...为:
echo "; width: {$tempWidth2}px;\">$votepct2%</div></td><td class=\"each_vote\" width=\"20%\">($vote2 votes)</td></tr>";
// removed a space, wrapped var in {}, fixes widths
...虽然你可以在可读性方面做得更好,从函数中返回一个字符串,如下所示:
function getRandomColor2()
{
$r2 = rand(128,255);
$g2 = rand(128,255);
$b2 = rand(128,255);
$color2 = dechex($r2) . dechex($g2) . dechex($b2);
return "#".$color2;
}
// ...
echo "<tr>"
. "<td width=\"45%\" class=\"polls\">{$entry2}</td>"
. "<td width=\"35%\" class=\"resultbar\">"
. "<div class=\"bar\" style=\"background-color: ".getRandomColor2()."; width: {$tempWidth2}px;\">{$votepct2}%</div>"
. "</td>"
. "<td class=\"each_vote\" width=\"20%\">({$vote2} votes)</td>"
. "</tr>";