2017-09-06 1 views
0

Ich habe ein Ausgangsformular mit einer einzigen Eingabe und einem Senden. Die Optionen stammen aus einer DB-Spalte "Kliniken". Der Benutzer wählt eine Klinik aus und reicht durch Drücken von NEXT ein.

  1. Der vorgelegte $_POST Wert geht in die Variable $clinic,
  2. Die $clinic Variable verwendet wird, um die DB abzufragen und die $clinic_hours Variable erhalten.
  3. Der Benutzer wird dann zu einem neuen Formular mit einer Texteingabe mit dem Wert $clinic vorgefertigt und mit einem Etikett mit der Aufschrift "Klinik: Allgemeines Krankenhaus verfügbare Stunden: 7.4", das heißt $clinic und $clinic_hours.
  4. Der Benutzer füllt den Rest des Formulars und übergibt, aber dies führt dazu, dass die 2 Variablen nicht definiert werden und das Formular nicht übermittelt werden kann. Kann jemand die $_POST Werte behalten, also kann ich sie in einer Form einreichen?

Dies ist mein Code:

Form 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> 

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

Warum verwenden Sie keine Sitzungsvariablen, um Variablen zwischen Skripts zu behalten? – Barmar

+1

Ich glaube, Sie finden es hier: https://stackoverflow.com/questions/871858/php-pass-variable-to-next-page –

+0

Beachten Sie die Sicherheitsprobleme bei der Arbeit mit den vorgeschlagenen versteckten Eingaben! Sie in Sitzung zu halten ist wahrscheinlich die sicherste. Der Link von @AbuNooh enthält alle Informationen, die Sie benötigen! – Pevara

Antwort

0

Sie versteckte Eingänge können die Werte in der zweiten Form weitergeben müssen:

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

Solange sie den gleichen Namen wie das erste Formular haben, sollten Sie wieder Zugang zu den Werten im $_POST Array haben.

+0

Die Sache mit versteckten Eingaben ist, dass es den Zweck verfehlt, weil der Punkt für den Benutzer ist, die ausgewählte Klinik zu sehen, zusammen mit seiner verfügbaren Trainingszeit vor dem Einreichen und Abrechnen für eine Trainingseinheit (die Klinik muss im Voraus bezahlte Zeit für die Trainer, um es zu trainieren). Wenn es nur um die Übermittlung der Daten geht, würde ich nur ein Formular verwenden. – Argut

+0

Sie können die Daten sowohl in einem versteckten Eingang speichern als auch die Daten für den Benutzer anzeigen, falls Sie das benötigen. – neuromatter

0

In der zweiten Form sollten Sie versteckte Felder erstellen und $clinic und $clinic_hours senden.

<input type="hidden" name="clinic" value="<?php echo $clinic; ?>"> 
<input type="hidden" name="clinic_hours" value="<?php echo $clinic_hours; ?>"> 
Verwandte Themen