2012-03-26 15 views
1
<form id="enter" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post" onsubmit="return validateForm(this);" > 
    <p> 
     <input id="submitBtn" name="submitDetails" type="submit" value="Submit Details" onClick="myClickHandler(); return false;" /> 
    </p> 
</form> 

<script type="text/javascript"> 
    function myClickHandler(){ 
     if(validation()){ 
        showConfirm(); 
     } 
    } 
</script> 

<?php 
    session_start(); 

    $outputDetails = ""; 
    $outputDetails .= "<table id='sessionDetails' border='1'> 
          <tr> 
           <th>Number of Sessions:</th> 
           <th>{$_POST['sessionNum']}</th> 
          </tr>"; 
    $outputDetails .= "</table>"; 
    echo $outputDetails; 
?> 

上記は私のフォームのコードです。私がしようとしているのは、ユーザーがフォームを送信すると、それは自分のページに戻るということです。しかし、 "SessionNum"が "1"であれば、フォームを自分自身にポストするのではなく、フォームをポストするか、つまり "session_marks.php"ページに移動する必要がありますが、sessionNumが1それはまだフォームを提出するか、それとも自分のページに戻るのですか?私は間違って何をしていますか?フォームが別のページに移動していません

また、sessionNumの番号を表示してからフォームを送信し、 、どのように私は自分自身にフォームを提出する際に番号が表示され続けるのですか?

おかげ条件ロジックは、私がformで見るすべての?フォームポストのターゲットを変更することです

+1

なぜ$ _SERVER変数に 'htmlentities()'を使用しますか? – Blake

+0

これは私がPHP_SELFを使用しているときに私がウェブから見た一例であることはわかりません – user1292857

+0

このすべての最終結果を教えてください。出てくる実際のHTML? – YonoRan

答えて

1

タグは次のとおりです。

action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" 

これは、常に現在のPHPファイルではなく、他のPHPファイルであることをformactionを設定します。条件付きで別のファイルに投稿する場合は、そこに条件付きロジックを追加する必要があります。この(PHPで非常に練習のうち、私はだことを覚えておいて、それを行うには良い方法があるかもしれませんが)のようなもの:数の消失については

action="<?php $_POST['sessionNum'] == 1 ? echo 'session_marks.php' : echo htmlentities($_SERVER['PHP_SELF']); ?>" 

、私は表示されません名前がsessionNumのフォーム要素。このようなフォーム要素がない場合は、$_POST['sessionNum']に何も表示されないので、表示される値がないため、数字は「消えます」。

+0

こんにちは、sessionNumは前のページからのもので、ユーザーは前のページのテキストボックスに数字を入力し、現在のページには前のページに入力した番号が表示されます。 – user1292857

+0

@ user1292857:これは、現在のページへの最初の投稿で機能します。しかし、一旦彼らが現在のページに再投稿すると、フォームに 'sessionNum'がなければ、表示する値はありません。 – David

+0

これを解決する方法はありますか、それともフォームを自分自身に提出するのに苦労するのでしょうか? – user1292857

0

上記が実際のコードの場合は、session_start();他の出力(html、phpのエコー、印刷など)の前に配置する必要があります。

+0

私はsession_start()を開始時に入れましたが、同じことをやっています。数字が '1'のときは別のページに移動せず、同じページに移動して通知します – user1292857

関連する問題