40482


<https://qiita.com/ShibuyaKosuke/items/0c5c6df1fac218fbca38>  
を参考にPageIndex付きのテーブル表示を達成しようとしています。

こちらの記事では、テーブルに表示する内容（レコード）を絞り込むための指定が画面から一切行えない仕様で紹介されているようですが、  
当方はこれを可能（画面からの指定値をPOSTで受け取りSQL文に反映）にする仕様で挑戦中です。

現在は、Tableを表示するための指定を済ませて同画面に配置したINPUT
type=submitのボタンを押下することで、テーブル内容の表示、及びその下部にPageIndexを羅列表示することまでできています。  
指定値に相応しい、抽出されるべき総レコード数、及び１ページに表示可能なレコード数を踏まえたPageIndexが表示されています。

# ====質問====

生成されたPageIndex（aタグ）を押下すると、指定パラメータを一切無視した内容（レコード）=当該SELECT文のWHERE句がない状況の結果を得てしまいます。  
当方が参考している記事では、PageIndexのaタグを押下すると、WHERE句の条件にあった引き続きのページを照会することができるのでしょうか？？  
（当方のDBMSは参考記事と異なりMSのSQLServerのため、記事どおりのコーディング動作を未確認です、すみません）

SELECT句の指定値が可変になる場合に、タグのリンク押下だけで、パラメータが引き継がれた表示をする方法などあるのでしょうか？

いつも変な質問ですみません、解決につながるヒントだけでも頂けましたら幸いです。  
よろしくお願いします。


CC BY-SA 3.0
2017-12-22T08:52:48.807
40481
2018-01-05T05:24:04.267
2020-06-17T08:14:45.997
-1
25696
question
php
PHPでPageIndex付きのTable表示を挑戦中。PageIndexのリンク押下時、意図した表示にならない


> 画面からの指定値をPOSTで受け取りSQL文に反映

aタグだけではpostパラメータを送ることは出来ないので、aタグをformタグで囲み、  
type="hidden"のinputでpost送信する値をセットしておきます。  
aタグのhrefに設定したjavascriptで`フォームのnameを指定してサブミット`します。

以下例です。例ではフォーム内からサブミットしていますが、フォームの外からでもサブミットを発行できます。

[code]

    <form method="post" name="f1" action=""><input type="hidden" name="page" value="10"> <a href="javascript:f1.submit()">10</a></form>
    <form method="post" name="f2" action=""><input type="hidden" name="page" value="11"> <a href="javascript:f2.submit()">11</a></form>
    <form method="post" name="f3" action=""><input type="hidden" name="page" value="12"> <a href="javascript:f3.submit()">12</a></form>
    
[/code]

＊GETパラメータ（href="hoge.php?page=10"）でpageを送った方が良いような気がしますが。

具体的なサンプル追記、`form`の`method`は動作結果が判りやすいように`get`を指定しています。

[code]

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <script type="text/javascript">
        function gosubmit(no){
            document.getElementById("pageno").value = no;
            document.f1.submit();
            return false;
        }
    </script>
    <form method="get" name="f1" action="fom1.html">
        <input name="text1" type="text" value="t1">
        <input name="text2" type="text" value="t2">
        <input name="text3" type="text" value="t3">
        <input name="text4" type="text" value="t4">
        <input name="text5" type="text" value="t5">
        <input name="page" type="hidden" value="0" id="pageno">
    </form>
    
    <a href="javascript:gosubmit(0);">p0</a>
    <a href="javascript:gosubmit(1);">p1</a>
    <a href="javascript:gosubmit(2);">p2</a>
    <a href="javascript:gosubmit(3);">p3</a>
    <a href="javascript:gosubmit(4);">p4</a>
    
    </body>
    </html>
    
[/code]


CC BY-SA 3.0
2017-12-22T10:03:29.133
40482
2018-01-05T05:24:04.267
2018-01-05T05:24:04.267
22793
22793
40481
answer