KENT-WEB サポートコーナー 過去ログ [ 0177 ]


記事No: 5306
投稿日: 2009/01/17(Sat) 16:46:12
タイトルMessage ENQ表示順について
ID情報: Magnum
投稿者: あん
URLhttp://kiichi.magnum-opus-pro.com/msgenq/msgenq.cgi

表題の件で、これから投票開始するにあたり、表示順位を固定したいのですが可能でしょうか?なぜこの様なバラバラの順位で表示されるのでしょうか?
ご回答宜しくお願い致します。いつもありがとうございます。


記事No: 5307
投稿日: 2009/01/17(Sat) 21:26:59
タイトルRe: Message ENQ表示順について
ID情報: Fuyuki
投稿者: BAL
URLhttp://f43.aaa.livedoor.jp/~sumure/

> 表題の件で、これから投票開始するにあたり、表示順位を固定したいのですが可能でしょうか?なぜこの様なバラバラの順位で表示されるのでしょうか?
> ご回答宜しくお願い致します。いつもありがとうございます。

項目を登録する段階で番号順に登録すれば数字の順番に並びます。
投票が行われると投票数順になりますので、順番を固定されたいのでしたら以下の修正を行ってください。

#-------------------------------------------------
# 初期画面
#-------------------------------------------------

-- 途中省略 --

<th class="l">番号</th><!-- ★修正 -->
<th class="l">項目</th>
<th class="l">得票数</th>
<th class="l">割合</th>
</tr>
EOM

# ソート処理
my $rank1 = 0;
my $rank2 = 1;
my $temp = 0;
my @no;
#foreach ( sort { ($cnt{$b} <=> $cnt{$a}) } keys(%cnt) ) { ## ★コメントアウト
foreach (keys(%cnt)){ ## ★追加
push(@no,$num{$_});
($cnt{$_} == $temp) || ($rank1 = $rank2);

# トップ順位表示
if ($topview && $in{'view'} ne "all" && $topview < $rank1) { next; }

my ($per,$width,$cnt);
if ($cnt{$_}) {
$per = int(($cnt{$_}*1000 / $total)+0.5) / 10;
$per = sprintf("%.1f", $per);
$width = int($per * 3);
if ($width < 1) { $width = 1; }
$cnt = &filler($cnt{$_});
} else {
$per = 0;
$width = 1;
$cnt = 0;
}

print qq|<tr><th class="r">$_</td>|; ## ★修正
print qq|<td class="r"><b>$itm{$_}</b></td>|;


[検索ページ]