2016-07-05 4 views
1

Ich mache ein Quiz. Und mit jeder Frage zeige ich die möglichen Antworten („True“ oder „False“) mit einer While-Schleife in PHP:Wie wählt man Werte aus Radio-Buttons und legte sie in eine PHP-Variable

echo "<form method='post' action='quizCheck.php'>"; 
while(x=0;x<=10; x++){ 
     echo "<div class='buttons'> 
       <label>True 
        <input type='radio' name='answer' value='true' /> 
       </label> 
       <label>False 
        <input type='radio' name='answer' value='false' /> 
       </label> 
      </div>"; 
} 
echo "</form>"; 

Lasst uns sagen, es gibt 10 Fragen, und ich wählen Sie „True“ auf 6 Fragen.

Welchen Code muss ich in quizCheck.php eingeben, damit er die Anzahl der "richtigen" Antworten zählen und in einer Variablen speichern kann?

+0

können Sie nicht. Ihr HTML befindet sich im Client-Browser und PHP läuft auf dem Server. Sie können PHP-Code nicht direkt vom Browser aus aufrufen/ausführen. Sie können höchstens eine Formularübergabe/Ajax-Anfrage an den Server senden und Code haben, der Ihre Daten serverseitig speichert. –

Antwort

0

Sie müssen zwei Dinge tun, müssen Sie zuerst eine Schaltfläche in Form einreichen:

<button type="submit" value="Submit">Submit</button> 

Dann werden Sie auch die Namen der Funkeingänge müssen so in der while-Schleife eindeutig sein (die Sie sollten wirklich nur für Schleife ändern a) tun:

for(x=0;x<=10; x++){ 
     echo "<div class='buttons'> 
       <label>True 
        <input type='radio' name='answer{$x}' value='true' /> 
       </label> 
       <label>False 
        <input type='radio' name='answer{$x}' value='false' /> 
       </label> 
      </div>"; 
} 

Wenn das Formular abgeschickt wird, dann in quizCheck.php nur Sie $_POST[answer0] durch $_POST[answer9] überprüfen, um zu sehen, die wahr sind und einen Zähler erhöhen.

Wenn Sie die Antworten in einem einzelnen Array wollen tun dann das:

for(x=0;x<=10; x++){ 
     echo "<div class='buttons'> 
       <label>True 
        <input type='radio' name='answers[$x]' value='true' /> 
       </label> 
       <label>False 
        <input type='radio' name='answers[$x]' value='false' /> 
       </label> 
      </div>"; 
} 

Wenn dieses Formular abgeschickt wird, dann in quizCheck.php Sie nur so etwas wie $answers = $_POST[answers] und dann gehen durch answers[0]-answers[9] zum Beispiel

+0

Hallo, ich habe x = 0; etc. in meiner Post, um die Frage zu erleichtern. Ich benutze tatsächlich die while-Schleife, um die Fragen aus einer Datenbank zu bekommen und sie zu zeigen. Wie kann ich die Antworten in einer Variablen speichern, ohne die While-Schleife für eindeutige Radioeingangsnamen zu verwenden? –

+0

So oder so müssen Sie einen Zähler haben, sei es in einer for-Schleife oder eine separate, die Sie innerhalb der while-Schleife erstellen und verwenden. Dann kannst du entweder wie oben vorgeschlagen vorgehen oder die Antworten in ein einzelnes Array werfen – easiestripes

Verwandte Themen