inspiron: Pflichtfelder überprüfen dann versenden

Hallo,
ich möchte in ein Formular eine Abfrage für Pflichtfelder einfügen. Das Prüfen funktioniert, nur was muß ich jetzt statt "echo 'Vielen Dank!';" eintragen um den Inhalt der Select_1 & 2 an "bericht_pdf.php" zu übergeben.

Gruß

  
<?php  
// Inhalte der Felder aus POST holen  
$Select_1 = $_POST['Select_1'];  
$Select_2 = $_POST['Select_2'];  
  
// Formulardaten einlesen  
if (isset($_POST['eintragen'])) {  
  
$errors = array();  
  
//variablen auf inhalt prüfen und ggf. den fehler in das array $errors packen  
if ($Select_1 == '') {  
  $errors[] = 'Select_1';  
}  
  
if ($Select_2 == '') {  
  $errors[] = 'Select_2';  
}  
  
// ist ein fehler aufgetreten?  
if (count($errors) > 0) {  
  //wenn ja, fehler ausgeben  
  echo 'Sie müssen folgende Felder ausfüllen!<br />' . implode(', ', $errors);  
  } else {  
  //wenn nicht,  
  echo 'Vielen Dank!';  
  }  
}  
?>  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">  
    <head>  
  
    </head>  
<body>  
  
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="formular" id="formular">  
  
  <div>  
	<h2>Select 1</h2>  
    <select class="defbreite" name="Select_1" id="Select_1">  
	   <option selected value="">Bitte ausw&auml;hlen! </option>  
  		<option value="Select_A1 ">Select_A1</option>  
  		<option value="Select_B1 ">Select_B1</option>  
  		<option value="Select_C1 ">Select_C1</option>  
    </select>  
  </div>  
  <br>  
  
  <div>  
	<h2>Select 2</h2>  
    <select class="defbreite" name="Select_2" id="Select_2">  
	   <option selected value="">Bitte ausw&auml;hlen! </option>  
  		<option value="Select_A2 ">Select_A2</option>  
  		<option value="Select_B2 ">Select_B2</option>  
  		<option value="Select_C2 ">Select_C2</option>  
    </select>  
  </div>  
  <br>  
  
<div class="knopf">  
 <input class="submit" type="submit" name="eintragen" id="eintragen" value="Bericht drucken"/>  
<!-- <p><input class="submit" type="submit" name="eintragen" value="Bericht drucken" onclick="document.getElementById('form').action='bericht_pdf.php'"/></p> -->  
</div>  
  
</form>  
</body>  
</html>  

  1. Such mal nach "Affenformular"

  2. Hi!

    Sehe ich das richtig? Du schreibst Ausgaben vor die Doctype Deklaration? Da haben sie nichts verloren.

    Versuche spasseshalber mal Die auszufuehrenden und auszugebnden Teile zu inkludieren.

    if (count($errors) > 0) {
      //wenn ja, fehler ausgeben
      msg = 'Sie müssen folgende Felder ausfüllen!<br />' . implode(', ', $errors);
      include(formular.php);
      } else {
      //wenn nicht,
      include(allestoll.php);
      }
    }

    Statt das Formular zu inkludieren kannst Du die Datei auch einlesen und dann per replace den Messagestring unterbringen und die Daten dann auszuliefern. Das haette den Vorteil, das Programm und Ausgabe weitestgehend getrennt sind.

    --
    Ich bin dafuer verantwortlich was ich sage, nicht dafuer, was Du verstehst.
    1. Hallo,
      danke schonmal füe die Hilfe!
      Ich habe mal Dein Vorschlag versucht umzusetzen nur gelingt mir da etwas nicht. Was ist daran falsch?
      Folgende Fehlermeldung bekomme ich:

      Danke
      __________

      Notice: Use of undefined constant bericht_pdf - assumed 'bericht_pdf' in /www/affe/affe_5.php  on line 70

      Notice: Use of undefined constant php - assumed 'php' in /www/affe/affe_5.php on line 70

      Warning: include(bericht_pdfphp) [function.include]: failed to open stream: No such file or directory in /www/affe/affe_5.php on line 70

      Warning: include(bericht_pdfphp) [function.include]: failed to open stream: No such file or directory in /www/affe/affe_5.php on line 70

      Warning: include() [function.include]: Failed opening 'bericht_pdfphp' for inclusion (include_path='.:/usr/share/pear/php5') in /www/affe/affe_5.php on line 7
      ___________

        
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
        
      <html xmlns="http://www.w3.org/1999/xhtml">  
      <head>  
      <meta http-equiv="content-type" content="text/html; charset=utf-8" />  
      <meta http-equiv="Content-Script-Type" content="text/javascript">  
      <title>Bericht</title>  
      <meta name="keywords" content="" />  
        
      <link href="default.css" rel="stylesheet" type="text/css" />  
        
        
      </head>  
      <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="formular" id="formular">  
        
        <div>  
      	<h2>Select 1</h2>  
          <select class="defbreite" name="Select_1" id="Select_1">  
      	   <option selected value="">Bitte ausw&auml;hlen! </option>  
        		<option value="Select_A1 ">Select_A1</option>  
        		<option value="Select_B1 ">Select_B1</option>  
        		<option value="Select_C1 ">Select_C1</option>  
          </select>  
        </div>  
        <br>  
        
        <div>  
      	<h2>Select 2</h2>  
          <select class="defbreite" name="Select_2" id="Select_2">  
      	   <option selected value="">Bitte ausw&auml;hlen! </option>  
        		<option value="Select_A2 ">Select_A2</option>  
        		<option value="Select_B2 ">Select_B2</option>  
        		<option value="Select_C2 ">Select_C2</option>  
          </select>  
        </div>  
        <br>  
        
      <div class="knopf">  
       <input class="submit" type="submit" name="eintragen" id="eintragen" value="Bericht drucken"/>  
      </div>  
        
      </form>  
      </body>  
      </html>  
        
      <?php  
      error_reporting(E_ALL);  
        
      // Formulardaten einlesen  
      if (isset($_POST['eintragen'])) {  
        
      $errors = array();  
        
      //variablen auf inhalt prüfen und ggf. den fehler in das array $errors packen  
      if ($_POST['Select_1'] == '') {  
        $errors[] = 'Select_1';  
      }  
        
      if ($_POST['Select_2'] == '') {  
        $errors[] = 'Select_2';  
      }  
        
      // ist ein fehler aufgetreten?  
      if (count($errors) > 0) {  
        //wenn ja, fehler ausgeben  
        echo 'Sie müssen folgende Felder ausfüllen!<br />' . implode(', ', $errors);  
        include(affe.php);  
        } else {  
        //wenn nicht,  
        include(bericht_pdf.php);  
        }  
      }  
        
      ?>  
      
      

      bericht_pdf.php

      <?php  
      error_reporting(E_ALL);  
        
      $DATUM = $_POST['Select_1'];  
      $SCHICHT = $_POST['Select_2'];  
      $ProdNr = $_POST['Select_1'] ."-" .$_POST['Select_2'];  
        
      echo $DATUM;  
      echo $SCHICHT;  
      echo $ProdNr;  
      ?>  
      
      
      1. Mahlzeit inspiron,

        Ich habe mal Dein Vorschlag versucht umzusetzen nur gelingt mir da etwas nicht. Was ist daran falsch?

        [ ] Du weißt, dass man in PHP String-Literale in Anführungszeichen einschließt.

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. Mahlzeit inspiron,

          Ich habe mal Dein Vorschlag versucht umzusetzen nur gelingt mir da etwas nicht. Was ist daran falsch?

          [ ] Du weißt, dass man in PHP String-Literale in Anführungszeichen einschließt.

          MfG,
          EKKi

          ....uff,
          kannst Du mir bitte mal auf die Sprünge helfen!

          Gruß

          1. Mahlzeit inspiron,

            ....uff,
            kannst Du mir bitte mal auf die Sprünge helfen!

            1.) Vermeide FOTU genauso wie TOFU.

            2.) Wenn Dir jemand in einer Antwort einen Link überreicht, klicke ihn an und lies, was sich dahinter verbirgt.

            3.) Verstehe, was Du gelesen hast. Sollte das nicht der Fall sein, gehe zurück zu 2.

            4.) Lies die Dokumentation zu include().

            5.) Schau Dir die Zeile 70 Deines Codes an. Erkenne den Unterschied zwischen Deinem Code und den Beispielen in der Dokumentation.

            6.) Eliminiere den Fehler in Deinem Code.

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
            1. ...ok,
              danke für den Tritt!

              ich glaube "include" ist doch nicht das was ich wollte.
              Es werden die Daten von "bericht_pdf.php" im Formular angezeigt. Ich möchte das statt include ("bericht_pdf.php"); auf die "bericht_pdf.php" gewechselt wird.

              Gruß

              1. Hi!

                ich glaube "include" ist doch nicht das was ich wollte.
                Es werden die Daten von "bericht_pdf.php" im Formular angezeigt. Ich möchte das statt include ("bericht_pdf.php"); auf die "bericht_pdf.php" gewechselt wird.

                Es wird die bericht_pdf.php angezeigt. Wenn Du diese in ein Formular einbaust, ist das nicht unbedingt der Fehler von include, sondern von deiner Programmlogik. Scheinbar trennst Du Anzeige nicht von Logik.

                Nochmal:
                Wenn alles ok: include bericht
                sonst: zeige Formular (z.B. durch include formular)

                Gibts dabei ein Problem?

                --
                Ich bin dafuer verantwortlich was ich sage, nicht dafuer, was Du verstehst.
        2. Mahlzeit inspiron,

          Ich habe mal Dein Vorschlag versucht umzusetzen nur gelingt mir da etwas nicht. Was ist daran falsch?

          [ ] Du weißt, dass man in PHP String-Literale in Anführungszeichen einschließt.

          MfG,
          EKKi

          »»

          So?!

            
          <?php  
          error_reporting(E_ALL);  
            
          // Formulardaten einlesen  
          if (isset($_POST["eintragen"])) {  
            
          $errors = array();  
            
          //variablen auf inhalt prüfen und ggf. den fehler in das array $errors packen  
          if ($_POST["Select_1"] == "") {  
            $errors[] = "Select_1";  
          }  
            
          if ($_POST["Select_2"] == "") {  
            $errors[] = "Select_2";  
          }  
            
          // ist ein fehler aufgetreten?  
          if (count($errors) > 0) {  
            //wenn ja, fehler ausgeben  
            echo 'Sie müssen folgende Felder ausfüllen!<br />' . implode(', ', $errors);  
            include(affe.php);  
            } else {  
            //wenn nicht,  
            include(bericht_pdf.php);  
            }  
          }  
            
          ?>  
          
          

          bericht_pdf.php

            
          <?php  
            
          error_reporting(E_ALL);  
            
          //$DATUM_mysql = date_german2mysql($_POST["Datum"]);  
          $DATUM = $_POST["Select_1"];  
          $SCHICHT = $_POST["Select_2"];  
          $ProdNr = $_POST["Select_1"] ."-" .$_POST["Select_2"];  
            
          echo $DATUM;  
          echo $SCHICHT;  
          echo $ProdNr;  
          ?>