2012-04-03 5 views
1

私のアプリケーションにはいくつかのページがあります。下にある最初のページ(create_session.php)では、フォームを送信して次のページ(QandATable.php)に進みます。

<form action="QandATable.php" method="post" id="sessionForm"> 

<p> 
    <strong> 
     Your Session ID: 
    </strong> 
    <span id="idFont"> 
     <?php echo $id; ?> 
    </span> 
</p> 
<input type="hidden" name="id" value="<?php echo $id; ?>" /> 

<p> 
    <strong> 
     Date: 
    </strong> 
    <input type="text" id="datepicker" name="dateChosen" readonly="readonly" /> 
<p> 
    <strong> 
     Start Time: 
    </strong> 
    <input type="text" id="timepicker" name="timeChosen" readonly="readonly" /> 

<p> 
    <input class="questionBtn" type="submit" value="Prepare Questions" name="prequestion"/> 
</p> 

</form> 

今$ _POST [「idは」] 1に等しい場合、1つだけの試験があるが、それはそれが1以上であれば、問題が発生した場所で、複数の試験があります。

QandATable.phpに2つの試験が欲しいと言いますが、最初の試験に問題はありませんが、最初の試験を終えてからフォームを送信すると(このフォームは自分自身に送信されます)、 2回目の試験のために、私は突然、以下のコードで$ _POSTのすべてを知っています。

​​

それでは、私が知りたいことは、私は、複数の試験を持っているときに最初の試験が完了した後に、なぜ私は$ _POSTのすべての通知を取得していますということですか?すべての通知はすべての投稿の未定義インデックスです。

+1

「お知らせ」とは何ですか? – Bono

+0

@Bonoこれはすべて$ _POST上の未定義のインデックスです。したがって、未定義のインデックス 'id'、 'timeChosen'、 'dateChosen'ですが、これは最初の試験が完了した後で、2番目の試験を作成する準備ができたときにのみ発生します – user1304948

+0

完全な警告を出してくれますか? 別のポイント:すべての値の前に空白があります(「 '」)。 mysql_real ...私はあなたのデータベースにそれらを望んでいないと思います。 –

答えて

1

undefined indexエラーが発生しています。フォームを送信せずにページを表示すると、探しているデータが存在しません。ポストデータがそれを使用しようとする前に存在している場合

チェック:

if(isset($_POST['sessionNum'], $_POST['id'], $_POST['timeChosen'], $_POST['dateChosen'])) 
{ 

    $insert = array(); 

    for ($i = 1, $n = $_POST['sessionNum']; $i <= $n; ++$i) 
    { 
    $insert[] = "' ". mysql_real_escape_string($_POST['id']) . ($n == 1 ? '' : $i) . "',' ". mysql_real_escape_string($_POST['timeChosen']) . "',' ". mysql_real_escape_string(date("Y-m-d", strtotime($_POST['dateChosen']))) . "'"; 
    } 

    $sql = "INSERT INTO Session (SessionId, SessionTime, SessionDate) 
    VALUES (" . implode('), (', $insert) . ")"; 


    mysql_query($sql); 

} 

それとも、正しいポストデータは常にPOSTリクエスト上に存在することがわかっている場合if($_SERVER['REQUEST_METHOD'] == 'POST')を使用しています。

+0

私は約20分でこれを試して、それがうまくいくかどうかを伝えるためにあなたに戻ってきます。 :) – user1304948

+0

これで問題は解決しましたか? – MrCode

関連する問題