重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

phpで、どこかをクリックしたら、変数をインクリメントしてから、ページをリロードする、というようなことはできますでしょうか?

何がしたいのかというと、データベースのレコード1行を使って、1ページで1つの商品を紹介するページを作ったので、
「<<」または「>>」というようなボタンを作って、
参照するレコードを示すIDの変数をインクリメント、デクリメントし、
商品を代わる代わる表示させたいのです。

Javascriptだとデータベースは使えませんよね?
Ajaxに精通しないと無理なのでしょうか。

質問者からの補足コメント

  • yambejpさんありがとうございます。
    変数を渡すことはできたのですが、それを操作する方法が分からないのです。

    冒頭、
    <?php
    if(empty($_GET['no'])){$ID = 1;}
    else{$ID = $_GET['no'];}
    $Item = new Item($ID);
    ?>
    を書き、
    HTMLを挟み、
    <nav>
    <ul>
    <li><a href="index.php?no=<?php echo $ID-- ?>">&lt;&lt;</a></li>
    <li><a href="index.php?no=<?php echo $ID++ ?>">&gt;&gt;</a></li>
    </ul>
    </nav>
    を書き、
    その下にテーブル組んでデータを載せています。

    すみません、実はPHP始めてまだ3日の初心者です。

      補足日時:2015/05/28 23:19

A 回答 (2件)

とりあえず$ID--でデクリメントしたあとに


$ID++でインクリメントしたらもとに戻るだけなので次のページには飛ばないです
($ID-1)と($ID+1)でよいでしょう。
もしくはどうしてもインクリメントしたいなら$ID+=2 してください

とりあえずこんな感じ

<?php
$ID_MIN=1;
$ID_MAX=5;

$ID=isset($_GET['no'])?$_GET['no']:1;
if($_GET['no']<$ID_MIN) $ID=$ID_MIN;
if($_GET['no']>$ID_MAX) $ID=$ID_MAX;
?>
<ul>
<?php
if($ID>$ID_MIN){
print "<li><a href=\"?no=".($ID-1)."\">&lt;&lt;</a></li>\n";
}
if($ID<$ID_MAX){
print "<li><a href=\"?no=".($ID+1)."\">&gt;&gt;</a></li>\n";
}
?>
</ul>
    • good
    • 0
この回答へのお礼

おぉ!できた!ありがとうございます!!
詳しい読解は後日になりそうですが、超素早いご回答が嬉しかったので、
取り急ぎ、お礼まで。

お礼日時:2015/05/28 23:51

簡易的なページングですね



<<と>>にリンクをはって、商品idをわたしてやればいいのでは?
ちなみにかならずしもIDは連番とはかぎらないので
インクリメントで処理するのはあまりよくない
きちんとDBから次のレコードを抜き出す処理が必要

もちろんajaxをつかえば非同期で処理はできます
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!