Formular Felder anzeigen wenn Bedingung erfüllt

Andre Lieske

Grünschnabel
Hallo Profis,
ich möchte in einem Formular ein Eingabefeld anzeigen wenn Bedingung leer ist,
wenn Bedingung vorhanden soll ein anderes Formularfeld angezeigt werden.
Ich hoffe das ich mich verständlich ausgedrückt haben.

Mein Versuch:
Code:
if($betreff2 == '')
{
<input type='text' name='betreff' id='Betreff' value='" . $betreff ."' size='45'> 
}else{
        <input type='text' name='betreff' id='Betreff' disabled value='" . $betreff . $betreff1 . $betreff2 ."' size='45'>
        <input type='hidden' name='betreff' id='Betreff' value='" . $betreff . $betreff1 . $betreff2 ."' size='45'>
}

Was mache ich falsch?
Besten Dank im voraus
 
Hallo,
klar doch
PHP:
<?php


error_reporting(1); // PHP Meldungen anzeigen (0/1)


$betreff2 = $name;
$betreff = $_GET['name'];
$betreff = str_replace ("%20", " ", $betreff);
$artnr2 = $pid;
$artnr = $_GET['pid'];
echo $betreff2;


// Weiterleitung - Nach dem absenden des Formulars,
// gelangt der Benutzer über einen Link auf folgende Seite:
// $Weiterleitung = "index.php";

$vorname = isset($_POST["vorname"]) ? $_POST["vorname"] : ""; // Vorname
$nachname = isset($_POST["nachname"]) ? $_POST["nachname"] : ""; // Nachname
$fon = isset($_POST["fon"]) ? $_POST["fon"] : ""; // Fon
$smnickname = isset($_POST["smnickname"]) ? $_POST["smnickname"] : ""; // SM-Nickname
$email = isset($_POST["email"]) ? $_POST["email"] : ""; // E-Mail
$betreff = isset($_POST["betreff"]) ? $_POST["betreff"] : ""; // Betreff
$artikel_nr = isset($_POST["artikel_nr"]) ? $_POST["artikel_nr"] : ""; // Artikel Nr
$nachricht = isset($_POST["nachricht"]) ? $_POST["nachricht"] : ""; // Nachricht
$KopieCk = isset($_POST["Kopie"]) ? " checked='checked'" : null; // E-Mail Kopie

// Benutzereingaben überprüfen
$Fehler = array("vorname"=>"","nachname"=>"","fon"=>"","smnickname"=>"","email"=>"",
 "sicherheit"=>"",);
if (isset($_POST["submit"])) {
 $Fehler["vorname"] = strlen($_POST["vorname"]) < 3 ? "Bitte geben Sie ihren Vornamen ein. (min. 3 Zeichen)!" : "";
 $Fehler["nachname"] = strlen($_POST["nachname"]) < 3 ? "Bitte geben Sie ihren Nachnamen ein. (min. 3 Zeichen)!" : "";
 $Fehler["fon"] = strlen($_POST["fon"]) < 1 ? "Bitte geben Sie ihren Telefonnummer ein." : "";
 $Fehler["fon"] .= !preg_match("/^[ 0-9\/-]{6,}+$/", $_POST["fon"]) ? "<br>Die Telefonnummer ist fehlerhaft!" : "";
 $Fehler["smnickname"] = strlen($_POST["smnickname"]) < 3 ? "Bitte geben Sie ihren Nicknamen aus dem Forum ein. (min. 3 Zeichen)!" : "";
 $Fehler["email"] = filter_var($_POST["email"], FILTER_VALIDATE_EMAIL) === false ? "Geben Sie eine gültige E-Mail-Adresse ein!" : "";
 $Fehler["nachricht"] = strlen($_POST["nachricht"]) < 10 ? "Bitte füllen Sie die Nachricht aus (min. 10 Zeichen)!" : "";
 $Fehler["sicherheit"] = (md5($_POST["zip"]) != $_POST["zip2"]) ? "Die Rechenaufgabe ist leider falsch!" : "";

}

// Sicherheitsabfrage - Zufallszahlen generieren
$Z0 = array(mt_rand(1, 9), mt_rand(1, 9));
$Z1 = max($Z0); $Z2 = min($Z0);
$Spam = $Z1 . " + &#" . (48 + $Z2) . ";";
$Schutz = md5($Z1 + $Z2);

// Formular erstellen
$Formular = "
<form action='" . $_SERVER["SCRIPT_NAME"] . "' method='post'>
<fieldset>
<table>

 <tr>
  <td>
   <label for='Vorname'> Vorname:</label>
  </td>
  <td>
   <input type='text' name='vorname' id='Vorname' value='" . $vorname . "' size='35' required='required'>
   <span class='pflichtfeld'>?<br> " . $Fehler["vorname"] . "</span>
  </td>
 </tr>

 <tr>
  <td>
   <label for='Nachname'> Nachname:</label>
  </td>
  <td>
   <input type='text' name='nachname' id='Nachname' value='" . $nachname . "' size='35' required='required'>
   <span class='pflichtfeld'>?<br> " . $Fehler["nachname"] . "</span>
  </td>
 </tr>

 <tr>
  <td>
   <label for='Fon'> Fon:</label>
  </td>
  <td>
   <input type='text' name='fon' id='Fon' value='" . $fon . "' size='35' required='required'>
   <span class='pflichtfeld'>?<br> " . $Fehler["fon"] . "</span>
  </td>
 </tr>

 <tr>
  <td>
   <label for='Smnickname'> SM-Nickname:</label>
  </td>
  <td>
  <input type='text' name='smnickname' id='Smnickname' value='" . $smnickname . "' size='35' required='required'>
   <span class='pflichtfeld'>?<br> " . $Fehler["smnickname"] . "</span>
  </td>
 </tr>

 <tr>
  <td>
   <label for='Email'> E-Mail:</label>
  </td>
  <td>
   <input type='text' name='email' id='Email' value='" . $email . "' size='35' required='required'>
   <span class='pflichtfeld'>?<br> " . $Fehler["email"] . "</span>
  </td>
 </tr>

 <tr>
  <td>
   <label for='Betreff'> Betreff:</label>
  </td>
  <td>
  
  if($betreff2 == '')
{
<input type='text' name='betreff' id='Betreff' value='" . $betreff ."' size='45'>
}else{
        <input type='text' name='betreff' id='Betreff' disabled value='" . $betreff . $betreff1 . $betreff2 ."' size='45'>
       <input type='hidden' name='betreff' id='Betreff' value='" . $betreff . $betreff1 . $betreff2 ."' size='45'>
       }

       
  </td>
 </tr>

 <tr>
  <td>
   <label for='Artikelnr'> Artikel Nr:</label>
  </td>
  <td>
<!--   <input type='text' name='artikel_nr' id='Artikelnr' value='" . $artikel_nr . "' size='35'> -->
       <input type='text' name='artikel_nr' id='Artikelnr' disabled value='" . $artikel_nr . $artnr1 . $artnr2 ."' size='35'>
       <input type='hidden' name='artikel_nr' id='Artikelnr' value='" . $artikel_nr . $artnr1 . $artnr2 ."' size='35'>

  </td>
 </tr>

 <tr>
  <td colspan='2'>
   <label> Nachricht:
   <span class='pflichtfeld'>? " . $Fehler["nachricht"] . "</span> <br>
   
   <textarea name='nachricht' style='width: 360px; height: 100px;' required='required'>" . $nachricht . "</textarea>
   </label>
  </td>
 </tr>

 <tr>
  <td colspan='2'>
   <label> Sicherheitsabfrage: &nbsp; 
   <em>" . $Spam . "</em> = 
   <input type='number' name='zip' size='4' pattern='[0-9]{1,2}' required='required' autocomplete='off'>
   </label>
   <input type='hidden' name='zip2' value='" . $Schutz . "'>
   <span class='pflichtfeld'>? " . $Fehler["sicherheit"] . "</span>
   <br><span class='hilfetext'> Bitte lösen Sie die Rechenaufgabe. </span>
  </td>
 </tr>

 <tr>
  <th colspan='2'>
   <br>
   <input type='submit' name='submit' value='Anfrage absenden'>
  </th>
 </tr>

</table>
 
Zuletzt bearbeitet von einem Moderator:
Woher beziehst du denn oben bei der deklaration die variable $name?

Edit: am besten packste den code dasnächste mal in [ PHP ] klammern, man kann das dann viel besser erkennen :)
 
Zuletzt bearbeitet:
Hi,

Zeile 4 steckt schon der erste Fehler. error_reporting() kennt nicht nur 0 und 1, sondern hier kann man fein steuern, welche Arten von Fehlermeldungen angezeigt werden sollen.
Hier sollte nicht "1" stehen, sondern "E_ALL":
PHP:
error_reporting(E_ALL);

Der restliche Code ist ziemlich unleserlich, aber du speicherst dein ganzes Formular in $Formular.
Hier kannst du nicht einfach komplexere PHP-Befehle (wie ein if / else) einbauen, du könntest es so schreiben:
PHP:
$Formular = "
<form acti........
......
";
if($betreff2 == '')
{ 
   $Formular .= "<input t.........";
}
$Formular .= "</td> ........";

Wenn du deinen Code übrigens mit einem Editor mit Syntax-Highlighing bearbeitest, oder hier im Forum durch [code=php]...[/code] Tags postest, dann sieht du den Fehler eh relativ schnell:
PHP:
<?php
 
 
error_reporting(1); // PHP Meldungen anzeigen (0/1)
 
 
$betreff2 = $name;
$betreff = $_GET['name'];
$betreff = str_replace ("%20", " ", $betreff);
$artnr2 = $pid;
$artnr = $_GET['pid'];
echo $betreff2;
 
 
// Weiterleitung - Nach dem absenden des Formulars,
// gelangt der Benutzer über einen Link auf folgende Seite:
// $Weiterleitung = "index.php";
 
$vorname = isset($_POST["vorname"]) ? $_POST["vorname"] : ""; // Vorname
$nachname = isset($_POST["nachname"]) ? $_POST["nachname"] : ""; // Nachname
$fon = isset($_POST["fon"]) ? $_POST["fon"] : ""; // Fon
$smnickname = isset($_POST["smnickname"]) ? $_POST["smnickname"] : ""; // SM-Nickname
$email = isset($_POST["email"]) ? $_POST["email"] : ""; // E-Mail
$betreff = isset($_POST["betreff"]) ? $_POST["betreff"] : ""; // Betreff
$artikel_nr = isset($_POST["artikel_nr"]) ? $_POST["artikel_nr"] : ""; // Artikel Nr
$nachricht = isset($_POST["nachricht"]) ? $_POST["nachricht"] : ""; // Nachricht
$KopieCk = isset($_POST["Kopie"]) ? " checked='checked'" : null; // E-Mail Kopie
 
// Benutzereingaben überprüfen
$Fehler = array("vorname"=>"","nachname"=>"","fon"=>"","smnickname"=>"","email"=>"",
 "sicherheit"=>"",);
if (isset($_POST["submit"])) {
 $Fehler["vorname"] = strlen($_POST["vorname"]) < 3 ? "Bitte geben Sie ihren Vornamen ein. (min. 3 Zeichen)!" : "";
 $Fehler["nachname"] = strlen($_POST["nachname"]) < 3 ? "Bitte geben Sie ihren Nachnamen ein. (min. 3 Zeichen)!" : "";
 $Fehler["fon"] = strlen($_POST["fon"]) < 1 ? "Bitte geben Sie ihren Telefonnummer ein." : "";
 $Fehler["fon"] .= !preg_match("/^[ 0-9\/-]{6,}+$/", $_POST["fon"]) ? "<br>Die Telefonnummer ist fehlerhaft!" : "";
 $Fehler["smnickname"] = strlen($_POST["smnickname"]) < 3 ? "Bitte geben Sie ihren Nicknamen aus dem Forum ein. (min. 3 Zeichen)!" : "";
 $Fehler["email"] = filter_var($_POST["email"], FILTER_VALIDATE_EMAIL) === false ? "Geben Sie eine gültige E-Mail-Adresse ein!" : "";
 $Fehler["nachricht"] = strlen($_POST["nachricht"]) < 10 ? "Bitte füllen Sie die Nachricht aus (min. 10 Zeichen)!" : "";
 $Fehler["sicherheit"] = (md5($_POST["zip"]) != $_POST["zip2"]) ? "Die Rechenaufgabe ist leider falsch!" : "";
 
}
 
// Sicherheitsabfrage - Zufallszahlen generieren
$Z0 = array(mt_rand(1, 9), mt_rand(1, 9));
$Z1 = max($Z0); $Z2 = min($Z0);
$Spam = $Z1 . " + &#" . (48 + $Z2) . ";";
$Schutz = md5($Z1 + $Z2);
 
// Formular erstellen
$Formular = "
<form action='" . $_SERVER["SCRIPT_NAME"] . "' method='post'>
<fieldset>
<table>
 
 <tr>
  <td>
   <label for='Vorname'> Vorname:</label>
  </td>
  <td>
   <input type='text' name='vorname' id='Vorname' value='" . $vorname . "' size='35' required='required'>
   <span class='pflichtfeld'>?<br> " . $Fehler["vorname"] . "</span>
  </td>
 </tr>
 
 <tr>
  <td>
   <label for='Nachname'> Nachname:</label>
  </td>
  <td>
   <input type='text' name='nachname' id='Nachname' value='" . $nachname . "' size='35' required='required'>
   <span class='pflichtfeld'>?<br> " . $Fehler["nachname"] . "</span>
  </td>
 </tr>
 
 <tr>
  <td>
   <label for='Fon'> Fon:</label>
  </td>
  <td>
   <input type='text' name='fon' id='Fon' value='" . $fon . "' size='35' required='required'>
   <span class='pflichtfeld'>?<br> " . $Fehler["fon"] . "</span>
  </td>
 </tr>
 
 <tr>
  <td>
   <label for='Smnickname'> SM-Nickname:</label>
  </td>
  <td>
  <input type='text' name='smnickname' id='Smnickname' value='" . $smnickname . "' size='35' required='required'>
   <span class='pflichtfeld'>?<br> " . $Fehler["smnickname"] . "</span>
  </td>
 </tr>
 
 <tr>
  <td>
   <label for='Email'> E-Mail:</label>
  </td>
  <td>
   <input type='text' name='email' id='Email' value='" . $email . "' size='35' required='required'>
   <span class='pflichtfeld'>?<br> " . $Fehler["email"] . "</span>
  </td>
 </tr>
 
 <tr>
  <td>
   <label for='Betreff'> Betreff:</label>
  </td>
  <td>
  
  if($betreff2 == '')
{
<input type='text' name='betreff' id='Betreff' value='" . $betreff ."' size='45'>
}else{
        <input type='text' name='betreff' id='Betreff' disabled value='" . $betreff . $betreff1 . $betreff2 ."' size='45'>
       <input type='hidden' name='betreff' id='Betreff' value='" . $betreff . $betreff1 . $betreff2 ."' size='45'>
       }
 
       
  </td>
 </tr>
 
 <tr>
  <td>
   <label for='Artikelnr'> Artikel Nr:</label>
  </td>
  <td>
<!--   <input type='text' name='artikel_nr' id='Artikelnr' value='" . $artikel_nr . "' size='35'> -->
       <input type='text' name='artikel_nr' id='Artikelnr' disabled value='" . $artikel_nr . $artnr1 . $artnr2 ."' size='35'>
       <input type='hidden' name='artikel_nr' id='Artikelnr' value='" . $artikel_nr . $artnr1 . $artnr2 ."' size='35'>
 
  </td>
 </tr>
 
 <tr>
  <td colspan='2'>
   <label> Nachricht:
   <span class='pflichtfeld'>? " . $Fehler["nachricht"] . "</span> <br>
   
   <textarea name='nachricht' style='width: 360px; height: 100px;' required='required'>" . $nachricht . "</textarea>
   </label>
  </td>
 </tr>
 
 <tr>
  <td colspan='2'>
   <label> Sicherheitsabfrage: &nbsp; 
   <em>" . $Spam . "</em> = 
   <input type='number' name='zip' size='4' pattern='[0-9]{1,2}' required='required' autocomplete='off'>
   </label>
   <input type='hidden' name='zip2' value='" . $Schutz . "'>
   <span class='pflichtfeld'>? " . $Fehler["sicherheit"] . "</span>
   <br><span class='hilfetext'> Bitte lösen Sie die Rechenaufgabe. </span>
  </td>
 </tr>
 
 <tr>
  <th colspan='2'>
   <br>
   <input type='submit' name='submit' value='Anfrage absenden'>
  </th>
 </tr>
 
</table>

Grüße,
BK
 
Zuletzt bearbeitet:
Code:
if($betreff2 == '')
{
<input type='text' name='betreff' id='Betreff' value='" . $betreff ."' size='45'> 
}else{
        <input type='text' name='betreff' id='Betreff' disabled value='" . $betreff . $betreff1 . $betreff2 ."' size='45'>
        <input type='hidden' name='betreff' id='Betreff' value='" . $betreff . $betreff1 . $betreff2 ."' size='45'>
}
Hallo Echo!
 
PHP:
 <tr>
  <td>
   <label for='Betreff'> Betreff:</label>
  </td>
  <td>
  ";
  if($betreff2 == '')
{
$Formular .= "<input type='text' name='betreff' id='Betreff' value='" . $betreff ."' size='45'>";
}
else{
$Formular .= "<input type='text' name='betreff' id='Betreff' disabled value='" . $betreff . $betreff1 . $betreff2 ."' size='45'>
<input type='hidden' name='betreff' id='Betreff' value='" . $betreff . $betreff1 . $betreff2 ."' size='45'>";
}
 

Neue Beiträge

Zurück