frage-Antwort kombi
pitstop
- php
Hi,
ich versuche gerade eine alte Frage-Antort kombi mit Auswertung komplett neu aufzusetzen.
jetzt habe ich folgendes Porblem:
ich habe ein Array mit einer Frage, 3 Anworten und der korrekten Lösung per ID.
Im Formular habe ich folgenden Code:
<form action="<?=$_SERVER['PHP_SELF']?>?action=sendit" method="post">
<input type="hidden" name="step" value="1"></input>
<? foreach($this->fakombi as $key=>$kombi): ?>
<? $i = 0 ?>
<tr>
<td valign="top" rowspan="2" style="width:60px;padding-top:14px;"><img src="/_em_daten/_locals/wna/_scripte/img/teaser/block_frage_<?=($i+1)?>.gif"></td>
<td valign="top" colspan="3" style="padding-top:14px"><b><?=$kombi["FRAGE"]?></b></td>
</tr>
<tr>
<td valign="top" colspan="3" style="text-align:left"><input type="radio" name="ant[<?=$i?>]" value="1"> <?=$kombi["ANTWORT1"]?></input></td>
</tr>
<tr>
<td valign="top"></td>
<td valign="top" colspan="3"><input type="radio" name="ant[<?=$i?>]" value="2"> <?=$kombi["ANTWORT2"]?></input></td>
</tr>
<tr>
<td valign="top"></td>
<td valign="top" colspan="3"><input type="radio" name="ant[<?=$i?>]" value="3"> <?=$kombi["ANTWORT3"]?></input></td>
</tr>
<? endforeach; ?>
</table>
Es wird alles super angezeigt, nur gabe ich das Prob, dass icvh aus 6x3 Antworten nur 1RadioButton drückjen kann, da er alles als 1 Formular ansieht.
Wie kann ich das ändern?
Ich hätte auch weiterhin aufgrund der weiterverarbeitung alles gerne in einem Formular.
Gibts nen Tipp?
danke, gruß Pit Stopp
Gibts nen Tipp?
ja, radiobuttons die zusammengehören sollen zusammengehörige namen haben, welche die nicht zusammengehören, sollen sie nicht haben
verwende zb einen zähler oder ein präfix mit zähler um die radio-gruppen zu trennen
danke.
schon passiert.
ist mir mit nachdenken und Quelltextbetrachtung auch selber eingefallen...
sorry
->hier die Lösung
<? $ctrl = 0; ?>
<? foreach($this->fakombi as $key=>$kombi): ?>
<? $i = $ctr++%1==0?$this->i++:?>
Du hast in jeder Schleife $i = 0
Und wunderst dich dann dass jede Radiogruppe das Gleiche
name="ant0"
hat?
Initialisiere $i=0 vor dem Schleifenbeginn.
Vor dem Ende jedes Schleifendurchgangs erhöhst du $i um 1.
Zum Rest deines Skripts will ich nichts sagen.
mfg Beat
echo $begrüßung;
Die Frage wurde ja schon beantwortet, jedoch ...
<input type="radio" name="ant[<?=$i?>]" value="1"> <?=$kombi["ANTWORT1"]?></input>
Da eine Radio-Gruppe immer nur eine einzige Antwort zurückgeben kann, braucht man diese nicht in ein Array-Element (ant[]) zu stecken.
</input>? Unter HTML 4 war das End-Tag forbidden. XML-konform scheint es mir zwar richtig, jedoch habe ich Zweifel, die ich nicht so recht begründen kann. Wenn du das Start-Tag mit /> abschließt, bist du auch XML-konform, und ich meine Zweifel los :-)
echo "$verabschiedung $name";