2017-09-06 9 views
0

私は、単一の入力と提出で初期フォームを持っています。オプションは、DB列の '診療所'から取得されます。ユーザは診療所を選択し、NEXTを押して送信する。提出$_POST値が変数$clinicに入る

  1. $clinic変数は、DBを照会し$clinic_hours変数を取得するために使用されます。
  2. ユーザーは$clinicの値が事前に入力され、 "clinic:General Hospital available hours:7.4"というラベル($clinicおよび$clinic_hours)が付いたテキスト入力が新しいフォームにリダイレクトされます。
  3. ユーザーは残りのフォームを入力して送信しますが、これにより2つの変数が未定義になり、フォームを送信できなくなります。誰もが$_POSTの値を保持する方法を知っていますので、私はそれらをフォームに提出できますか?

これは私のコードです:

フォーム1:

<form action="session.php" method="POST">  

    <select id="clinic" name="session_clinic">  

      <?php    
      while ($row = mysqli_fetch_assoc($get_org_query))       
      {      
       echo '<option 
     value="'.$row['name'].'">'.$row['name'].'</option>';         
      }             
      ?> 
     </select> 

      <input type="submit" id="clinic_submit" 
      name="clinic_submit" value="Next">       
</form> 

フォーム2:

<form action="session.php" method="POST"> 

    <label for="session_clinic" class="clinic_label">Clinic: <?php echo 
    $clinic ?> (Available: <?php echo $clinic_hours ?> hours)</label> 
      <br>    

      <input type="text" id="session_clinic" 
     class="session_clinic" name="session_clinic" value="<?php 
     echo $clinic ?>">    

      <input type="date" name="session_date"> 

      <input type="text" id="session_duration" 
      class="duration" name="session_duration"> 

      <textarea name="session_note" id="session_note" cols="56" rows="7"></textarea>       

      <input type="radio" name="status" value="Billable"> Billable<br> 
      <input type="radio" name="status" value="Not Billable"> Not Billable<br> 

      <input type="submit" name="session_submit" value="Submit"> 
</form>  
+0

なぜスクリプト間で変数を保持するためにセッション変数を使用しないのですか? – Barmar

+1

こちらをご覧ください:https://stackoverflow.com/questions/871858/php-pass-variable-to-next-page –

+0

提案されている隠された入力を扱う際のセキュリティの問題に注意してください!セッション中にそれらを保存するのがおそらく最も安全です。 @AbuNoohによって提供されるリンクには、必要なすべての情報が含まれています。 – Pevara

答えて

0

あなたは二番目の形式で値を渡すために隠された入力を使用することができます。

<input type="hidden" name="session_clinic" value="<?php echo $clinic; ?>">

最初のフォームと同じ名前であれば、$_POST配列の値に再度アクセスする必要があります。

+0

隠された入力については、トレーニングセッションの提出と請求の前に利用可能なトレーニング時間とともに、選択したクリニックをユーザーが見ることができるため、目的を破ることになります(クリニックでは、それを訓練するトレーナー)。データを提出するだけであれば、私はただ一つの書式を使用します。 – Argut

+0

非表示の入力にデータを格納し、それが必要な場合はユーザーのデータを表示できます。 – neuromatter

0

2番目のフォームでは、非表示フィールドを作成して$clinic$clinic_hoursを送信する必要があります。

<input type="hidden" name="clinic" value="<?php echo $clinic; ?>"> 
<input type="hidden" name="clinic_hours" value="<?php echo $clinic_hours; ?>"> 
関連する問題