質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

8580閲覧

PHP ページング処理でPOSTで受け取った値が次のページで反映されない

dskn1121

総合スコア26

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/01/19 00:44

編集2017/01/19 00:46

あいまい検索をし、その結果を表示。
5件表示しその後ページング処理をします。

次のページへ遷移する際、全ての結果が表示されてしまいます。
これは、where Photo_Date LIKE '%$form%' の部分が機能していないようで$formをページングの際に伝えられていないためだと思います。

次のページで値を渡すためにはどのように書いていけばいいのでしょうか。
初心者の質問ですがよろしくお願いします。

###ソースコード

<?php $s=mysql_connect("","","") or die("fail"); mysql_select_db("",$s); $form=$_POST["kennsaku"]; //***********************************************************************************************// //-------------------------------------------------------------- //ページング処理 //-------------------------------------------------------------- $page = $_REQUEST['page']; //----------指定がなければ$pageは1--------------- if ($page == "" ) { $page = 1; }else{ //----------$pageが1より小さい場合は1----------- $page = max($page, 1); } //------------最終ページを決める-------------------- $recordSet = mysql_query("SELECT COUNT(Photo_Date) FROM T_Info where Photo_Date LIKE '%$form%'"); $res = mysql_fetch_assoc($recordSet); $ares = $res['COUNT(Photo_Date)']; $maxPage = ceil($ares / 5 ); $page = min($page,$maxPage); //----------オフセットの値を指定-------------------- $start = ($page - 1) * 5; echo $form; //***********************************************************************************************/// $my_Row1 = mysql_query("SELECT Photo_Date FROM T_Info where Photo_Date LIKE '%$form%' order by Photo_Date desc LIMIT {$start},5"); //**************************************************************************************************/// while($row = mysql_fetch_array($my_Row1)){ echo "<form id=\"form\" name=\"form\" method=\"post\" action=\"\">"; echo "<img src=\"{$row[0]}\">"; echo "&nbsp;"; echo $row[0]; echo "&nbsp;"; echo "<input name=\"aiueo[]\" type=\"checkbox\" value=\"{$row[0]}\">"; echo "&nbsp;&nbsp;"; }; echo "<br><br>"; echo "<input type=\"submit\" value=\"選択してお気に入り登録\"onclick=goServletB(); >"; echo "<input type=\"submit\" value=\"選択して削除\" onclick=goServletC(); >"; echo "<br><br>"; echo "</form>"; //------------------------------------------------------------------------------------------------------ if($page > 1 ) { ?> <a href="kensaku.php?page=<?php print($page - 1); ?>">前のページ</a> <?php }else{ ?> <!-- 前のページ --> <?php } ?> <?php if ($page < $maxPage ){ ?> <a href="kensaku.php?page=<?php print($page + 1); ?>">次のページ</a> <?php }else{ ?> <!-- 次のページ --> <?php } //*************************************************************************************************/// mysql_close($s); ?>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

php

1$form=$_REQUEST["kennsaku"]; 2 3... 略 ... 4 5<a href="kensaku.php?page=<?php print($page - 1); ?>&kennsaku=<?php print($form); ?>">前のページ</a> 6 7... 略 ... 8 9<a href="kensaku.php?page=<?php print($page + 1); ?>&kennsaku=<?php print($form); ?>">次のページ</a>

でしょうね。

もし、POSTだけで行うならば、ページ移動用のフォームを作成してページ前後移動でフォームをコミットさせれば良いでしょうね

投稿2017/01/19 02:00

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dskn1121

2017/01/19 02:23 編集

試してみたのですが次のページへ行ったら$formの値が消えてしまいます。 セッションで保持できていないようです、、、 書き方の問題になるのでしょうか、、、
dskn1121

2017/01/19 02:42

変に勘違いしていました!その通りやってみたらうまくいきました!ありがとうございました!
guest

0

ページングがgetでデータをやり取りするなら当然postのデータは
次のページに渡りませんね
セッションやクッキーなど一度postされたデータを保持する
仕組みの利用を検討するか、あまり大量でないデータであれば
getに置き換えてパラメータを付加すればよろしいのでは?

投稿2017/01/19 01:10

yambejp

総合スコア114572

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dskn1121

2017/01/19 02:31

>ページングがgetでデータをやり取りするなら どこの部分がそうなっているのでしょうか セッションの使い方をできれば教えてほしいです、よろしくお願いします
dskn1121

2017/01/19 02:43

ようやくうまくいきました。 セッションの使い方をもっと勉強してきたいと思いますありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問