Neurodeamon
Erfahrenes Mitglied
Ja, habe noch eine Idee. Da natürlich (woran ich hornochse nicht gedacht habe) nur eine Checkbox übertragen wird (also eine 1), gibt das correct array nur einen unterpunkt. Alle anderen bleiben leer.
Sprich: Der erste treffer ist immer 1 (egal was man auswählt) und alle anderen werden 0
Sorry... Ich ändere es fix und editiere diesen Post hier
EDIT:
formular.html
proc.php
Erläuterung:
Da die Checkboxen nur eine Datenfragment versenden, wird das Array "correct" nur mit einem Wert 1 gefüllt, der an position »0« sitzt. Weitere Werte werden nicht gefüllt (was natürlich der sinn der checkbox ist). Daher habe ich einfach jede Checkbox mit einem Wert gefüllt der eindeutig ist: nämlich der Position 1-4. So wird zwar nur ein Datenfragment übertragen, aber das enthält die Zahl 1 - 4 (was 0-3 entspricht), womit wir feststellen können welche Antwort die 1 in die Datenbank bekommt und welche die 0.
So funktioniert es, habe es diesmal auch überprüft. Sorry nochmal, das hätten wir uns sparen können
Sprich: Der erste treffer ist immer 1 (egal was man auswählt) und alle anderen werden 0
Sorry... Ich ändere es fix und editiere diesen Post hier
EDIT:
formular.html
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title></title>
</head>
<body>
<form method="post" action="proc.php" name="asdf">
<table>
<tr>
<td><strong>Antwort 1:</strong></td>
<td><input name="answer[]" type="text" class="forminput" id="answer[]" size="40">
<input type="radio" name="correct[]" value="1" id="correct[]"></td>
</tr>
<tr>
<td><strong>Antwort 2:</strong></td>
<td><input name="answer[]" type="text" class="forminput" id="answer[]" size="40">
<input type="radio" name="correct[]" value="2" id="correct[]"></td>
</tr>
<tr>
<td><strong>Antwort 3:</strong></td>
<td><input name="answer[]" type="text" class="forminput" id="answer[]" size="40">
<input type="radio" name="correct[]" value="3" id="correct[]"></td>
</tr>
<tr>
<td><strong>Antwort 4:</strong></td>
<td><input name="answer[]" type="text" class="forminput" id="answer[]" size="40">
<input type="radio" name="correct[]" value="4" id="correct[]"></td>
</tr>
</table>
<input name="send" value="Abschicken" type="submit">
</form>
</body>
</html>
proc.php
PHP:
<?php
// Nimm die POST Daten in Empfang und schreibe sie in ein Array
$arr_values['answer'] = $_POST['answer'];
$correct_num = $_POST['correct'][0];
// Alle Werte stehen nun in einem Array bereit
//ersetzte durch deine Configdatei etc.
// include("mysqlconnect.php");
// nun bilden wir eine kleine schleife
for($i=0;$i<count($arr_values['answer']);$i++){
$answer = $arr_values['answer'][$i];
if ($i == $correct_num-1){$correct = 1;}else{$correct = 0;}
// bilde SQL-Befehl
$sql = "INSERT INTO deinetabelle (answer,correct) VALUES ('$answer','$correct')";
// Es folgt Deine Datenbankverbindung
// $query = mysql_query($sql);
echo $sql."<br>\n";
}
// Die Schleife führt in diesem Beispiel 4 Verbindungen durch
?>
Erläuterung:
Da die Checkboxen nur eine Datenfragment versenden, wird das Array "correct" nur mit einem Wert 1 gefüllt, der an position »0« sitzt. Weitere Werte werden nicht gefüllt (was natürlich der sinn der checkbox ist). Daher habe ich einfach jede Checkbox mit einem Wert gefüllt der eindeutig ist: nämlich der Position 1-4. So wird zwar nur ein Datenfragment übertragen, aber das enthält die Zahl 1 - 4 (was 0-3 entspricht), womit wir feststellen können welche Antwort die 1 in die Datenbank bekommt und welche die 0.
So funktioniert es, habe es diesmal auch überprüft. Sorry nochmal, das hätten wir uns sparen können
Zuletzt bearbeitet: