電子書籍の厳選無料作品が豊富!

教えてください。

<input type="hidden" name="page" value="$PAGE">
※<p>タグ内の1=($PAGE(50)/50)
<p>1ページ目</p>
<button name="front" value="-50" onclick="location.href='bbs.cgi">前へ</button>
<button name="next" value="+50" onclick="location.href='bbs.cgi">次へ</button>

最初に、bbs.cgiを開いた時は、1の状態
hiddenのvalueの値が50

で「次へ」ボタンを押すと、
hiddenのvalueの値が100になり
(2=次へのValueの値50+$PAGE(100)/50)

となり、さらに2ページで「次へ」を押すと
hiddenのvalueの値が150になり
(3=次へのValueの値50+$PAGE(150)/50)

前へはその逆のこと。

まずやりたいこと
①最初にbbs.cgiに入ったときのhiddenの値は50
②次へを押して行くとhiddenの値は、+50ずつあがっていく
(前へは-50)

このようなことをしたいのですが、どのようにすればいいのでしょうか?

A 回答 (3件)

No.1です。



> 掲示板などでのページ移動にも使えるのでしょうか・・・?

言われている意味が分かりません。。。(;_;)

(1) あるWeb画面に入力欄や選択欄があって
(2) 然るべき入力・選択を行って“実行”ボタンなどを押すとWebサーバーに画面上で入力・選択したデータが画面のHTML中で指定したURL(←静的HTMLファイルではなくプログラムを指す)へ飛んで行き
(3) 指定されたサーバ上のプログラムでその指定・選択された値を受け取って何がしかの処理を行い
(4) 処理結果の画面(HTML)を生成して送出する
(5) サーバー側で送出されたHTMLをブラウザが受け取り画面描画する

というアプリケーション機能を持ったWebページ処理の最も基本的な一連の流れを理解されていますか?
で、Perlで実現しようとされているプログラムは(1)から(5)のどの部分なのかを把握されていますか?
また、そのようなWebページの場合、ブラウザ上部にあるURL欄に表示されているURLと表示中の画面の関係を理解されていますか?(上記の流れを理解されているなら自明のことですが念のため)
    • good
    • 0

このような感じでしょうか



-- bbs.cgi
my $q = CGI->new();
my $nextpage = $q->param('nextpage');
my $page = $nextpage? $nextpage: 50;
print <<"_HTML_";
<form action=bbs.cgi>
<input type=hidden name=page value="@{[$page]}">
<p>@{[$page/50]} ページ目</p>
<button type=submit name=nextpage value="@{[$page-50]}">前へ</button>
<button type=submit name=nextpage value="@{[$page+50]}">次へ</button>
</form>
_HTML_
    • good
    • 0
この回答へのお礼

私の説明が不足しておりました。
たしかにこの動きですが、URLが変わらずとかも可能でしょうか・・・?

お礼日時:2017/07/28 16:41

まず、HTMLとPerlを混同されているかと。

。。

> ①最初にbbs.cgiに入ったときのhiddenの値は50

それは単にsubmitでbbs.cgiを呼び出す画面内で該当hidden変数に50という値がセットされていればよいだけです。
hidden変数への値のセットを画面がそうされることにより行うのであればJavascriptなど、ブラウザ側で動作するロジックを該当画面に組み入れればよいです。
そういう操作が必要無いのであれば該当画面(内のform)に最初から50という値をセットしたhidden変数を設けておけばよいだけです。


> ②次へを押して行くとhiddenの値は、+50ずつあがっていく
> (前へは-50)

Perlを前提とする(つまりサーバ側で画面生成を行うプログラムで実現する)のであれば、画面上でsubmitしたことでサーバ側に飛んできたform変数の一つである該当hidden変数を変数名を指定して取り出し、その値に50を加えた値を送出する画面内の該当hidden変数にセットすればよいだけです。

ちなみに「次へ」を押すたびにあるform変数(←hidden変数に限らず)に一定値を加えるだけなら都度サーバ側のプログラムに処理を依頼しなくてもブラウザ上で動作するJavascriptで行うことが出来ます。

参考まで。
    • good
    • 0
この回答へのお礼

JavaScriptはあまり触ったことがありませんが、
掲示板などでのページ移動にも使えるのでしょうか・・・?

お礼日時:2017/07/28 16:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!