PHP: Ergebnis erst später aufdecken nach Antwort?
Hey,
ich habe folgenden html und php-Code.
<form action="Subtraktion (1).php" method="post" target="">
<table>
<tr>
<td><font face="Roboto Slab" size=+1>Anzahl der Aufgaben eingeben</font></td>
<td><input type="Text" name="z" value="" size="" maxlength=""></input></td>
<td align="center"><input type="submit" style="font-family: 'Roboto Slab'" background-color="black" name="y" value="Absenden"></td></tr>
</table>
<br>
</form>
<?php
if((isset($_POST['z'])) and (is_numeric($_POST['z'])))
{
$zahl = $_POST['z'];
{
while($zahl>0)
{
$a = rand(5, 10);
$b = rand(0, 5);
$erg = $a - $b;
$zahl = $zahl - 1;
echo "<table class='Tab'>";
echo "<table border='1'>";
echo "<tr> <td>$a - $b = ?</td> <td><input type=\"Text\" name=\g\" value=\"\">\n</td><td>$a - $b = $erg</td></tr>";
echo "</table>";
}
}}
?>
</body>
</html>
Damit soll der Nutzer Aufgaben – so viel wie er anfangs ausgewählt hat, berechnet können. Die Aufgaben bestehen hierbei aus zufälligen Zahlen. Meine Frage wäre jetzt: wie ich es schaffen kann (mit eher einfachen Befehlen), den Code so zu schreiben, dass das Ergebnis – hier: $a - $b = $erg – erst enthüllt wird, sobald der Nutzer ins Textfeld seine Antwort zur Aufgabe eingegeben hat?
Hier nochmals die Stelle (auch oben zusammen mit dem gesamten Code sichtbar):
echo "<table class='Tab'>";
echo "<table border='1'>";
echo "<tr> <td>$a - $b = ?</td> <td><input type=\"Text\" name=\g\" value=\"\">\n</td><td>$a - $b = $erg</td></tr>";
echo "</table>";
Vielen Dank :)
3 Antworten
Es gibt mehrere Möglichkeiten:
1.) Mit Einsatz von Javascript wärst du am flexibelsten und könntest beliebige Aktionen implementieren: Ergebnis wird direkt beim eingeben geprüft, es gibt einen Button um Ergebnisse zu prüfen... Aber dann könntest du auch alles gleich in Javascript machen. Ohne Javascript kannst du das ausgelieferte HTML nicht dynamisch verändern.
2.) Mit CSS: Prüfungen, etc... gehen nicht, aber mit dem "Schlüsselwort" ":hover" kannst du die Darstellung von Elementen verändern, abhängig davon ob du mit der Maus drüber fährst. Du könntest so die Ergebnisse verstecken, bis man mit der Maus drüber fährt. -Bisschen wie bei einem Rubbelfeld
Mit CSS geht (neuerdings) noch bisschen mehr: https://stackoverflow.com/questions/13630229/can-i-have-an-onclick-effect-in-css
3.) Du baust ein normales Formular. Wenn der Nutzer alle Werte ausgerechnet hat und auf abschicken geklickt hat, bekommst du deine Ergebnisse, kannst sie prüfen und eine Seite mit Auswertung ausgeben. Die zufällig gewählten Zahlen/Aufgaben kannst du entweder in der Session-Variable halten, oder per Formularfeldern wieder mitgeben. Anbieten würden sich dazu "hidden"-Felder oder schreibgeschützte input-Felder.
Ich habe die Frage schon einmal in ähnlicher Form gestellt.
Ich habs diesmal nur versucht, etwas klarer zu formulieren.
Darfst du überhaupt kein JavaScript benutzen ?
Das ginge viel besser, einfacher und kürzer.