-1

重複の可能性:
このコードがカウンターを適切にインクリメントしないのはなぜですか?

正しいページ番号の表示に関して問題があります。

何が起こっているかを確認するために使用できるデモがあります。

  • ステップ1:アプリを開いたら、テキストボックスに数字の8を入力して、送信します。
  • ステップ2:ページの上部に「質問と回答の作成:セッション1/8」と表示されます。これは、現在8つのうち最初のページにいるので正しいです。
  • ステップ3:下部にある[詳細を送信]ボタンをクリックすると、「質問と回答の作成:セッション2/8」と表示されていることがわかります。繰り返しますが、これは問題ありません。現在、8ページ中2ページ目です。

以下は問題です:

  • ステップ4:[質問の追加]ボタンを2回クリックすると、下に2つの行が表示され、両方の行に独自の画像ファイルアップロードフォームが含まれています。

  • ステップ5:[詳細を送信]ボタンをクリックすると、「質問と回答の作成:セッション3/8」ではなく、「質問と回答の作成:」と表示されているため、3ページに表示されていないことがわかります。セッション5/8"

これを行っていると思う理由は、[詳細を送信]ボタンをクリックすると、フォーム全体が送信されるだけでなく、画像ファイルのアップロードフォームが2つ並んで表示されるため、それらもカウントされるためです。送信時に、3ページではなく5ページにいると表示されているのはそのためです。

だから私の質問は、正しいページ番号を表示できるようにするためにコードを何を変更する必要があるのか​​ということです。ユーザーが[詳細を送信]ボタンをクリックするたびに、ページ番号は毎回+1だけカウントされます。

以下は、現在ページ番号をカウントする方法と、ページ番号を上に表示する方法のコードです。

            <?php

session_start();


if(isset($_POST['sessionNum'])){
            //Declare my counter for the first time

            $_SESSION['initial_count'] = $_POST['sessionNum'];
            $_SESSION['sessionNum'] = intval($_POST['sessionNum']);
            $_SESSION['sessionCount'] = 1;

    }

else if ($_SESSION['sessionCount'] < $_SESSION['sessionNum']) {
    $_SESSION['sessionCount']++;
}


$sessionMinus =  $_SESSION['sessionCount'];

?>

..。

<h1>CREATING QUESTIONS AND ANSWERS: SESSION <?php echo $sessionMinus ?> OF <?php echo $_SESSION['initial_count'] ?></h1>
4

1 に答える 1

1

ではcreate_session2.php、詳細の追加と送信に関する質問を区別する必要があります。たとえば、を使用してみてくださいisset($_POST['submitDetails'])submitDetailsこの変数は、ユーザーがボタンをクリックしてフォームにアクセスした場合にのみ設定されます。

...
if (isset($_POST['submitDetails'])) {
    session++;
}
...

このようにして、結果としてセッション量を増やすかどうかがわかります。

于 2012-07-17T16:39:28.247 に答える