2011-01-16 15 views
1

解決できない問題が発生しました。私のポイントは、私のsybmitボタンを "クリック"し、毎回このカウンタが10に達する間にカウンタを増やすことです。初めて動作しますが、これはそれです! 私のテストコードは以下の通りです: 複数回送信ボタンをクリックする

<form name="testForm" method="post"> 
<?php $cnt=0; ?> 

<input type="submit" name="next" id="next" value="NEXT"/> 

<?php 
    if(isset($_POST['next'])){ 
    if($cnt< 10){ 
     echo $cnt.' --> '; 
     $cnt++; 
     echo $cnt; 
    } 
    } 
?> 
</form> 

のみ0 - > 1に印刷され、毎回...助けてください!

ありがとうございました

答えて

2

カウンタはページ読み込みの間に保存されません。あなたがする必要があるのは、カウンタを$_SESSION変数に保存することです。

+0

または非表示のフォーム要素です。 – Chris

+0

URLに貼り付けて、$ _GETでそれを記録してください。 – davin

+0

ありがとうございました。私は一番簡単な解決策ではないと思っています。再度、感謝します! $ _SESSIONは大丈夫でした! –

1

Webブラウザにフォームが表示されている間に、PHPコードがサーバ上で実行されています。ユーザーが「送信」をクリックするたびに、フォームはサーバーに送信され、$ cnt変数はゼロに戻されます。

<form name="testForm" method="post"> 

<?php $cnt = isset($_POST["cnt"]) ? $_POST["cnt"] : 0; ?> 
<?php 
    if(isset($_POST['next'])){ 
    if($cnt< 10){ 
     echo "<!-- ".$cnt.' --> '; 
     $cnt++; 
     echo $cnt; 
    } 
    } 
?> 
<input type="hidden" name="cnt" value="<?php echo $cnt;?>" /> 
<input type="submit" name="next" id="next" value="NEXT"/> 
</form> 

現在のカウントがフォームの一部になります。この方法は:のように、フォームにカウント数を入れて何をすべき

。ユーザーが「送信」を押すと、現在のカウントとフォームを送信したという事実が送信されます。サーバーは現在のカウントを取得し、インクリメントして新しいカウントでフォームを送り返すことができます。

1

あなたがセッションを使用する必要がhttp://www.php.net/manual/en/book.session.php

<?php session_start()?> 
<form name="testForm" method="post"> 
<?php 
    if (empty($_SESSION['cnt'])){ 
     $_SESSION['cnt'] = 0; 
    } 
?> 

<input type="submit" name="next" id="next" value="NEXT"/> 
<input type="submit" name="clear" id="clear" value="CLEAR"/> 

<?php 
    if(isset($_POST['next'])){ 
     if($_SESSION['cnt']< 10){ 
      echo $_SESSION['cnt'].' --> '; 
      $_SESSION['cnt']++; 
      echo $_SESSION['cnt']; 
     } 
    } 
    if(isset($_POST['clear'])){ 
     $_SESSION['cnt'] = 0; 
    } 
?> 
</form> 
0

セッションを使用する必要があります。初期化されていない場合は最初にセッション変数初期値1を設定します。初期化後、2回目のクリックから、else文を満たすため、+1を1回カウントします。