Ich versuche, eine Codelogik zu erstellen, indem Sie eine for
Schleife anstelle von mehreren if
Anweisungen verwenden.Erstellen von Codelogik, die eine for-Schleife verwendet, um durch mehrere Arrays zu durchlaufen
Dies ist die vorherige if
Anweisung Code habe ich vor:
if (isset($_POST['answer1']))
{
if ($_POST['answer1'] === '1d')
{
print $correct[0];
}
elseif ($_POST['answer1'] === '1b')
{
print $incorrect[0];
}
elseif ($_POST['answer1'] ==='1c')
{
print $incorrect[0];
}
elseif ($_POST['answer1'] === '1a')
{
print $incorrect[0];
}
};
Dieser Code mich für die Antwort und Druck entweder die $correct
oder $incorrect
Variable prüfen können. Mein Problem in diesem Code ist, dass es sehr ineffizient ist, weil ich am Ende zehn oder so if
Anweisungen erstellen muss.
Ich kam mit einem Mock-up des for
Schleife Code bis zu veranschaulichen:
$_SESSION["totalCorrect"] = 0;
if (!isset($_SESSION["totalCorrect"]))
{
$_SESSION["totalCorrect"] = 0;
}
else
{
$totalCorrect = $_SESSION["totalCorrect"];
}
$postAns = array($_POST['answer1'] as $ans1, $_POST['answer2'] as $ans2, $_POST['answer3'] as $ans3, $_POST['answer4'] as $ans4, $_POST['answer5'] as $ans5, $_POST['answer6'] as $ans6,
$_POST['answer7'] as $ans7, $_POST['answer8'] as $ans8, $_POST['answer9'] as $ans9, $_POST['answer10'] as $ans10);
for ($i = 0; $i < count($postAns); i++)
{
if ($i == $postAns[])
{
if ($postAns[] === 'answer')
{
print $correct[];
$_SESSION["totalCorrect"]++;
}
else()
{
print $incorrect[];
}
}
};
Für diesen Code, ich habe drei Arrays beteiligt, dass ich Zyklus versuche durch, $postAns
, $correct
und $incorrect
. Die $correct
und $incorrect
Arrays, wenn sie aufgerufen werden, drucken Text aus, je nachdem, ob sie die richtige Antwort erhalten haben.
So für die for
Schleife, ich möchte in der Lage sein, durch jeden Wert der $postAns
Array zu überprüfen und zu sehen, welche Antwort Nummer es ist und ob es die richtige Antwort ist oder nicht. Wenn es korrekt ist, durchläuft der Code $correct
, um den richtigen Text für diese Antwortnummer zu erhalten, und inkrementiert den Wert totalCorrect
, die Variable, die speichert, wie viele Benutzer den richtigen Wert erhalten haben. Wenn der Code nicht korrekt ist, durchläuft er den Code $incorrect
, um den richtigen Text für diese Antwortnummer zu erhalten.
Ich bin nicht wirklich gut mit Schleifen im Allgemeinen, so dass jede Einsicht/Hilfe sehr geschätzt würde.
EDIT: Inklusive der Formular-Vorlage Code
<form action="staff_info.php" method="get" id="q1">
<fieldset>
<legend>Question 1</legend>
<input type="radio" name="answer1" value="1a" id="1a"><label for="1a"> A. </label>
<input type="radio" name="answer1" value="1b" id="1b"><label for="1b"> B. </label>
<input type="radio" name="answer1" value="1c" id="1c"><label for="1c"> C. </label>
<input type="radio" name="answer1" value="1d" id="1d"><label for="1d"> D. </label>
<input type="button" id="answer" class="button " title="abutton" value="ANSWER">
<a href="staff_q2.php" class="button " title="nbutton" style="float:right;" id="next">NEXT</a>
</fieldset>
Hallo, Entschuldigung für die späte Antwort, aber dieser Code funktionierte mit ein paar Optimierungen. Ich habe den $ responseIndex außerhalb der if-Anweisung verschoben, da er den gesamten Text anstatt nur des richtigen ausgegeben hat, aber die allgemeine Idee des Codes war unglaublich hilfreich. – Wolfrum