HTML
1<div class="page-num"> 2 <a href="?p=1" class="pager current">1</a> 3 <a href="?p=2" class="pager">2</a> 4 <a href="?p=3" class="pager">3</a> 5</div> 6
Javasript
1$(function() { 2 3 var urlParams = new URLSearchParams(window.location.search); 4 var page = urlParams.get('p'); 5 var result = -1; 6 7 if(page) { 8 result = page.search(/^[1-9]+$/); 9 } 10 11 if(result == -1) { 12 //パラメータがない場合(初回アクセス時)または、不正なパラメータの場合は 13 //1ページ目に遷移するので、1ページ目に色を付ける。 14 $('.pagination > .page-num > a:first').toggleClass('current'); 15 }else { 16 $('.pagination > .page-num > a').each(function() { 17 if($(this).text() == page) { 18 $(this).toggleClass('current'); 19 } 20 }); 21 } 22});
phpでページネーションを作成し、うまく動作しています。ページ数は動的に変化し、1 2 3 4 5
のように表示され、クリックしたページへ遷移します。現在、どのページが表示されているのかは、パラメータのp
によって把握できます。そして、javascriptにて、p
の値と同じaタグ
にcurrent
クラスを付与し、他とは違うスタイルを適用させるようにしています。これによって、現在表示しているページのリンクは、他のリンクとは異なる見た目となり、どのページが表示されているのかが分かりやすくなっています。
パラメータは正の整数のみを許容します。そして、不正な値が入力された際は、1ページ目へ遷移するように設定しています。
phpの方の実装はできましたが、javascriptでの実装がつまっています。それは、例えば、最大のページ数が7の場合に、パラメータに8が入力された場合です。phpの方は最大のページ数を$max
に持っており、これを超える数が入力された場合は、1ページ目へ遷移させています。
なので、最大のページ数を超える値がパラメータに入力された場合、phpによって1ページ目へ遷移するのに合わせて、javascriptの方も、1ページ目のリンクにcurrentクラスを付与するようにしたいです。
そのためには、phpの$max
の値をjavascript側に渡す必要があると思うのですが、渡し方が分かりません。そもそも、phpの値をjavascriptへ渡せるのでしょうか?
お手数をお掛けしますが、ご助言をよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー