次のページが表示してくれません。
どこが悪いのか、わかりません。教えてください。
スクリプトは以下の通りです。
#formのデータ処理で
$in{$key} = $val; # 入力データは%inへ
#ページ処理(2)
if($val eq '次の$page件'){
$allhits=$in{'allhits'};
$ff=$key;
&Search;
}
#sub Search内で
#foreach $line (@messages) {の中で
#ページ処理(4)
$page_control++;
if($ff eq ""){ $ff = 1; }
if( $ff > $page_control ){ next; }
#ページ処理(5)
#最初のページの時、データの最後まで処理する。
if($in{'next_num'} eq ''){
if($end != 1 && $hit == $page )
{ $end = 1; $next_num = $page_control; $allhits++ ; }
elsif( $hit >= $page) { $allhits++ ; }
else{ push(@NEWS , $line); $hit++; $allhits++; }
$test5 = $allhits; #test値 13 -> なし 正常(値の変化をチェック)
}elsif( $ff > 4 ){ #この辺の処理がうまくいっていない?
$allhits = $in{'allhits'};
$test3 = $allhits; #test値が入らない?(値の変化をチェック)
if ($hit == $page ) { $next_num = $page_control ;
$test4 = $next_num; #test値が入らない?(値の変化をチェック)
#last OUTER;
}
else { push (@NEWS , $line ); $hit++; }
}
} #foreach文ここまで
&footer; #ページ送りのサブルーチン
#ページ送りボタンサブルーチン
sub footer {
print "<table width=700><tr><td align=left>\n";
if ($ff >2) {
print "<INPUT type=submit value=\"前の$page件\" onClick=history.back()>\n";
}
print "</TD><TD align=right>\n";
if ($next_num){
print "<INPUT type=submit name=\"$next_num\" value=\"次の$page件\">\n";
}
print "</td></tr></table>\n";
}
No.2ベストアンサー
- 回答日時:
スクリプト全体を見ていないので、
はっきりとは言えませんが、
>「次の$page件」($pageの部分は変数展開しています。)を押したとき
と言うことであれば、
・条件分岐で処理している部分を疑ってみる。
・全体でのデータの流れでおかしい部分はないか?
などをチェックしてみてはいかがですか?
いずれにしろ、ここに記載されている部分だけだと
把握できない部分もあるので、原因を追及するのは
少し難しいですね。
お力になれず、申し訳ないです。
karogonさん
チェックありがとうございます。
掲載部分が問題なさそうだとわかっただけでも
問題点を絞れて、大変うれしいです。
ありがとうございます。
おっしゃる通り
・条件分岐で処理している部分を疑ってみる。
・全体でのデータの流れでおかしい部分はないか?
の2点かなと思っていました。
今後ともよろしくお願いします。
No.1
- 回答日時:
表示されないとなると、何かエラーが出ているのでしょうか?
ぱっと見て、気になった箇所が一点。
ソースの32行目で
} #foreach文ここまで
となっていますが、これに対応する"{"が
見当たりません。
おそらく10行目の
#foreach $line (@messages) {の中で
だとは思うのですが、実際にはコメントアウト
されてますので、この部分で引っ掛かってるのでは
ないですか?
この回答への補足
早速お返事ありがとうございます。
#foreach $line (@messages) {の中で は
スクリプト中では # はありません。{も対応しています。
最初(htmlから検索結果を呼び出したときは正常に表示されるのですが、「次の$page件」
($pageの部分は変数展開しています。)を押したとき
Internal Server Errorがでてしまいます。
#ページ処理(5) の }elsif( $ff > 4 ){ まで値が正常ですが、
}elsif( $ff > 4 ){ の次から値が入らないようです。どうしてかわかりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP PHP ページング データベース 1 2022/06/16 10:30
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別フォームから戻ったときのイ...
-
VBAでIEの「Web ページからのメ...
-
「Cancel = True」とはどういう...
-
エクセル アプリケーションの...
-
Perlで数値(小数点、負の数、...
-
VB6.0のEnabledをfalseにしても...
-
VB2005 DataGridView上でクリッ...
-
excelのタスクバーアイコンが・...
-
マイページはどこを開くの
-
ウインドウを毎回同じ位置、大...
-
デジタル時計の時刻合わせの方...
-
エクセルのシート上に別のシー...
-
VBAのユーザーフォームのframe...
-
小さな表示窓の呼び方は
-
VBAで任意のウインドウのサイズ...
-
スクリプトって、何ですか?ど...
-
Javascript_submit()完了後に処...
-
Excelでワードアートや図を常に...
-
リストビューをスクロールさせ...
-
同じページをブラウザで複数開...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「Cancel = True」とはどういう...
-
別フォームから戻ったときのイ...
-
VB2005 DataGridView上でクリッ...
-
excelのタスクバーアイコンが・...
-
Perlで数値(小数点、負の数、...
-
VB6.0のEnabledをfalseにしても...
-
VBAでIEの「Web ページからのメ...
-
エクセル アプリケーションの...
-
【ImageMagick】 PDF → JPG 変...
-
【C#】ラベルのダブルクリック...
-
Perlでページ処理がどうしても...
-
vba IE操作で こういう事って...
-
別ページからのタブ切り替えの...
-
処理終了後のに砂時計が、クリ...
-
数千行HTML 画面表示の性能改善
-
javascriptの中で、perlのコマ...
-
C# マウスオーバーの記述方法
-
実行中のOSを知るには?
-
C++での連続した左クリックの禁...
-
Sleep関数の最大時間について
おすすめ情報