私設SoS2オーナー応援BBS

新規発言一覧最新記事過去一覧検索ダウンロードページHOME

スレッド

└◇1605:
Re[7]:画像変更 [moon] 01/03 20:14

 └◇1606:Re[8]:画像変更 [rien] 01/03 22:01<-last


1605● Re[7]:画像変更[ moon ] 2009 01/03 20:14
> この間お聞きしたリスト表示の件なのですが
> >>unless ($pagemax == 1){〜}
> の部分をコメントアウトし
> 置き換え・・・page→pageno、cgiurl→listurl
> にしてみました。
> 一括表示の部分がうまくいかなかったので
> >>if($Fm{"pageno"} != all){print qq|<td><b>[<a href="$listurl?mode=list&order=$Fm{'order'}&pageno=all" target="_self">一括表\示</a>]</b></td>\n|;}
> このように変えてみたのですが・・
>
> 表示自体・・
> 一括表示、前の●●件、IDやJOBなどのプルダウン、ページと思われるプルダウン(数字は記載されておらず・・)
> という表示になってしまって
> PAGEボタン(決定ボタン)が表示していませんでした・・。
> 前のではなくて次の〜件が表示されなくてはいけないはずなのですが・・
>
> $backを求めるということは代入するということなのでしょうか??
>
> すみません・・よろしくお願いします。

まとまったソースは出さないようにしているのですが、それぞれの説明をしていると時間がかかりそうなので出します。

sub player_list内を以下のように変更すれば実現できると思います。(軽い動作確認は行いました。)
1. 先頭部分に以下を追加する。
  my $def_searchmaxh = $searchmaxh;
  my $allpage = $Fm{'pageno'} eq 'all';
2. unless ($pagemax == 1){〜}を以下に置き換える。
  print qq|<table border="0" cellpadding="2" cellspacing="2" align="center">\n|;
  print qq|<td><b>[<a href=$listurl?mode=list&order=$Fm{'order'}&pageno=all>一括表\示</a>]</b></td>\n|;
  if (!$allpage){
    my $back = $Fm{'pageno'} - 1;
    if ($back > 0){
      print <<EOD;
<form method="$method" action="$listurl">
<input type="hidden" name="mode" value="list">
<input type="hidden" name="order" value="$Fm{'order'}">
<input type="hidden" name="pageno" value="$back">
<td><input type="submit" value="前の${def_searchmaxh}件" class="btn1"></td>
</form>
EOD

    }
    my $next = $Fm{'pageno'} + 1;
    if (($next - 1) * $def_searchmaxh < @odrlines){
      print <<EOD;
<form method="$method" action="$listurl">
<input type="hidden" name="mode" value="list">
<input type="hidden" name="order" value="$Fm{'order'}">
<input type="hidden" name="pageno" value="$next">
<td><input type="submit" value="次の${def_searchmaxh}件" class="btn1"></td>
</form>
EOD

    }
  }

  print <<EOD;
<form method="$method" action="$listurl">
<input type="hidden" name="mode" value="list">
<td><select name="order">
EOD

  foreach ('ID','Name','Job','Money','Rate','Bounty') {
    if ($Fm{'order'} eq $_){
    print qq|<option value="$_" selected>$_</option>\n|;
    } else {
    print qq|<option value="$_">$_</option>\n|;
    }
  }

print <<EOD;
</select>
</td>
<td><select name="pageno">
EOD

  for ($i=0; $i <= $#odrlines; $i += $def_searchmaxh ) {
    $page_no = $i / $def_searchmaxh + 1;
    if (!$allpage && $page_no == $Fm{'pageno'}) { print qq|<option value="$page_no" selected>$page_no</option>\n|; }
    else { print qq|<option value="$page_no">$page_no</option>\n|; }
  }
  print <<EOD;
</select>
</td>
<td><input type="submit" value="PAGE" class="btn1"></td>
</form>
</table>
EOD
スレッド一覧


1606● Re[8]:画像変更[ rien ] 2009 01/03 22:01
> まとまったソースは出さないようにしているのですが、それぞれの説明をしていると時間がかかりそうなので出します。
>
> sub player_list内を以下のように変更すれば実現できると思います。(軽い動作確認は行いました。)
> 1. 先頭部分に以下を追加する。
>   my $def_searchmaxh = $searchmaxh;
>   my $allpage = $Fm{'pageno'} eq 'all';
> 2. unless ($pagemax == 1){〜}を以下に置き換える。
>   print qq|<table border="0" cellpadding="2" cellspacing="2" align="center">\n|;
>   print qq|<td><b>[<a href=$listurl?mode=list&order=$Fm{'order'}&pageno=all>一括表\示</a>]</b></td>\n|;
>   if (!$allpage){
>     my $back = $Fm{'pageno'} - 1;
>     if ($back > 0){
>       print <<EOD;
> <form method="$method" action="$listurl">
> <input type="hidden" name="mode" value="list">
> <input type="hidden" name="order" value="$Fm{'order'}">
> <input type="hidden" name="pageno" value="$back">
> <td><input type="submit" value="前の${def_searchmaxh}件" class="btn1"></td>
> </form>
> EOD
>
>     }
>     my $next = $Fm{'pageno'} + 1;
>     if (($next - 1) * $def_searchmaxh < @odrlines){
>       print <<EOD;
> <form method="$method" action="$listurl">
> <input type="hidden" name="mode" value="list">
> <input type="hidden" name="order" value="$Fm{'order'}">
> <input type="hidden" name="pageno" value="$next">
> <td><input type="submit" value="次の${def_searchmaxh}件" class="btn1"></td>
> </form>
> EOD
>
>     }
>   }
>
>   print <<EOD;
> <form method="$method" action="$listurl">
> <input type="hidden" name="mode" value="list">
> <td><select name="order">
> EOD
>
>   foreach ('ID','Name','Job','Money','Rate','Bounty') {
>     if ($Fm{'order'} eq $_){
>     print qq|<option value="$_" selected>$_</option>\n|;
>     } else {
>     print qq|<option value="$_">$_</option>\n|;
>     }
>   }
>
> print <<EOD;
> </select>
> </td>
> <td><select name="pageno">
> EOD
>
>   for ($i=0; $i <= $#odrlines; $i += $def_searchmaxh ) {
>     $page_no = $i / $def_searchmaxh + 1;
>     if (!$allpage && $page_no == $Fm{'pageno'}) { print qq|<option value="$page_no" selected>$page_no</option>\n|; }
>     else { print qq|<option value="$page_no">$page_no</option>\n|; }
>   }
>   print <<EOD;
> </select>
> </td>
> <td><input type="submit" value="PAGE" class="btn1"></td>
> </form>
> </table>
> EOD


お返事ありがとうございます。
す、すみません。。。
ソースまで出していただいて・・
お手数をおかけいたしまして申し訳ないです。

こうして見ると記述がぜんぜん足りなかったことが分かりました・・・。
ソースを見比べて勉強したいと思います。
どうもありがとうございました。
またご迷惑をおかけするかもしれませんが・・
よろしくお願いいたします。
スレッド一覧

CGIROOM