Edited at

PHP&HTML&JS <A>タグを他のform項目とまとめてPOST後、取得する方法(例:ページング処理)


sample.php

<?php

// 1頁当たりの表示件数
const CON_ONE_PAGE_NUM = 100;

// ■入力値取得:検索キーワードテキストボックス
$get_act_name = filter_input(INPUT_POST,'act_name');

// ■入力値取得:ページ番号を取得
$get_page = filter_input(INPUT_POST,'page',FILTER_VALIDATE_INT);
if (empty($get_page)) {
// パラメータ無し時は1頁目が選択された事とする
$get_page = 1;
}
?>

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">
function selectedPage( page ) {
document.form1.page.value=page;
document.form1.submit();
}
</script>
</head>
<body>

<form method="post" name="form1" action="sample.php">
女優名<input type="text" name="act_name" value="<?php echo $get_act_name; ?>" />
<input type="submit" value="検索">
<div>
<!-- ここはPHP処理で(1頁の表示件数 / 全体件数)分だけ以下Aタグを生成すればいい -->
<a href="" onclick="selectedPage(1);return false;">1ページ</a>
<a href="" onclick="selectedPage(2);return false;">2ページ</a>
<a href="" onclick="selectedPage(3);return false;">3ページ</a>
<a href="" onclick="selectedPage(4);return false;">4ページ</a>
<input type="hidden" name="page" value="">
</div>
</form>

<?php echo $get_page; ?>ページを選択しました(←目的の箇所)

<p>ページ番号のリンク押下でも検索フォームの値を維持しながら選択したページ番号を取得するサンプル</p>
<p>この後"$get_page" を検索開始位置のoffsetに使用すれば2頁目、3頁目を表示するといった制御が可能</p>

<?php
// 開始行位置・終了行位置 offset算出
$num_record_start = ($get_page - 1) * CON_ONE_PAGE_NUM + 1; // 表示したい開始レコード行位置
$num_record_end = $get_page * CON_ONE_PAGE_NUM; // 表示したい終了レコード行位置
?>

</body>
</html>


Qiita初投稿になります宜しくお願いします。長い事プログラムはやっていますがもっぱらsql周りでPHP等のweb周りの言語はまだ始めて間もない事もあり

おかしな部分がありますがご容赦下さい。むしろ指摘下さるとありがたいです。

PHPで検索項目を任意の数だけ設け、その結果件数に応じた頁リンクをずらずらと並べた場合に

入力された検索項目内容を維持しながらどうにか頁番号をAタグから同時に渡せないかと調べていたところ javascriptを利用して押されたリンク内容をpostでまとめて送信する

となんとか形になったサンプルです。

なにせHTML等の知識が古い情報でとまっています、PHPについてはまだ3日分しか知識がありません。

なので同機能をもっとシンプルにスマートにする記述がありましたら教えていただければと思います。

jQuery等を使えばもっとスマートにできるのかな?

※dmmのWEB APIを使ってえっちな検索システムを作ろうとしたのが発端です。

動作環境:Windows 10 Pro & XAMPP Version: 7.3.2