Noname0990: Problem: Im Fomular sollen die eingegeben Werte stehen bleiben

Also ich hab ein kleines Formular was die Werte an in Variablen übergibt. Sobald ich auf abschicken klicke sind die Werte oben wieder raus und unten das Ergebnis. Ich möchte das Ergebnis haben und im Fomular trotzdem noch die Werte stehen haben.

Mein Code:

<form action="rechner.php" method="post">
Sollmenge: <input type="number" name="sollmenge" /><br />
Soll Nikotinstärke: <input type="number" name="sollnikotin" /><br />
Basis 1: <input type="number" name="basis1" /><br />
Basis 2: <input type="number" name="basis2" /><br />
Aroma: <input type="number" name="aroma" /><br />
<input type="Submit" value="Absenden" />
</form>

<?php
if (!empty($_POST["sollmenge"])) 
        { 
$sollmenge = $_POST["sollmenge"];
$sollnikotin = $_POST["sollnikotin"];
$basis1 = $_POST["basis1"];
$basis2 = $_POST["basis2"];
$aroma = $_POST["aroma"];
$nikotingesamt = $sollmenge*$sollnikotin;
$aromagesamt = $sollmenge*$aroma/100;
$mengebasis2 = ($nikotingesamt-($basis1*$sollmenge*(1-$aroma/100)))/($basis2-$basis1);
$mengebasis1 = $sollmenge-$mengebasis2-$aromagesamt;

echo "Nikotingesamt: $nikotingesamt ml<br> Aromagesamt: $aromagesamt ml <br> Basis 2: $mengebasis2 ml<br> Basis 1 $mengebasis1 ml";

} 
?>
  1. Hallo,

    deine input-Felder haben keinen value und somit können Sie nach dem Abschicken auch keinen Wert mehr haben. Außerdem fehlen bei dir die <label> (was nichts mit deinem Problem zu tun hat)

    Hier ein kleines Besipiel

    <?php
    if(isset($_POST['sollmenge'])) {
    	$sollmenge = $_POST['sollmenge']; } else {
    	$sollmenge = "";
    	}
    ?>
    
    <label for="sollmenge">Sollmenge:</label>
    <input type="number" name="sollmenge" id="sollmenge" value="<?php echo htmlspecialchars($sollmenge ) ?>" />
    
    1. Wo setze ich die if-Abfrage rein. Oben im Formular oder bei der Ausgabe im php-Teil?

      1. Bevor die Ausgabe kommt

  2. Tach!

    Also ich hab ein kleines Formular was die Werte an in Variablen übergibt. Sobald ich auf abschicken klicke sind die Werte oben wieder raus und unten das Ergebnis.

    Das Abschicken erzeugt als Ergebnis eine neue Seite. Wenn in der irgendwelhe Werte drinstehen sollen, musst du sie da reinschreiben. Sprich: Mit PHP entsprechendes HTML erzeugen.

    Ich möchte das Ergebnis haben und im Fomular trotzdem noch die Werte stehen haben.

    Mir scheint, das du da nichts berechnest oder ausführst, was ein Server berechnen oder ausführen müsste. Dann empfiehlt es sich gleich im Client zu bleiben und Javascript zu nehmen. Es sei denn, du musst unbedingt Clients ohne Javascript bedienen.

    dedlfix.