Newsgroup: it.comp.www.php
Titolo: Radio button che non funziona..... help

ciao a tutti,
vi riporto la parte di codice incrimanata:
----
$reAnswer = mysql_query("SELECT idRisp,textof FROM ".$prefix."_testrisp 
WHERE idQuest=\"$idQuest\" ORDER BY idRisp");
while(list($idRisp, $textof) = mysql_fetch_row($reAnswer)){
   echo "<tr><td width=\"2%\"></td><td width=\"%\">$textof</td>"
    ."<td width=\"5%\"><input type=\"radio\"
name=\"answer[$idQuest][$idRisp]\" value=\"0\"></td></tr>";
		}
-------------
in pratica, si tratta di un codice che richiama delle domande di un
questionario.
Nonostante sia specificato l'input type di tipo "radio", succede che tutte
le domande di un gruppo risultano selezionabili, invece che "una sola"
come dovrebbe accadere con i radiobutton. (cioč i radiobutton si
comportano come checkbutton).
Come devo modificare il codice?
Grazie.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 "una sola" come dovrebbe accadere con i radiobutton. 
E' il comportamente corretto. I radio button per essere collegati
devono avere lo stesso name:
<input type=\"radio\" name=\"answer[$idQuest]\" value=\"$idRisp\">
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Do. Or do not. There is not try.

 <input type="radio" name="answer[$idQuest]" value="$idRisp">
grazie Setec per avermi risposto,
dunque, modificando il codice come mi hai suggerito ottengo il risultato
che volevo, cioè ho dei radio button collegati tra loro, ma mi si presenta
un altro problema....
.... le risposte non vengono tracciate correttamente (a differenza di
quanto accadeva con il codice del mio primo post), in quanto sebbene
inserisca le risposte esatte, queste non vengono rilevate come giuste, ed
ottengo sempre un punteggio pari a zero.
Penso che ciò dipenda dal fatto che i test richiamati dal codice, sono
stati pensati per questionari a risposta multipla (cioè con possibilità di
inserire più risposte esatte e non una sola..)...
Cè un modo per rimediare a questo inconveniente ?
grazie ancora
-


 .... le risposte non vengono tracciate correttamente 
Posta il codice che "traccia" le risposte.


 Posta il codice che "traccia" le risposte.
grazie ancora Setec per la tua disponibilità.
Ecco il codice.....
--------
//inizio pubblicazione risultati del test
		echo "<center><b>"._NAMETEST." : $titleTest</b></center><br><br />";
		if(!$visuSol) echo "<b>"._SOLOMIT."</b><br /><br />";
		if(!$visuRis) echo "<b>"._RISOMIT."</b><br /><br />";
		$reCat = mysql_query("SELECT DISTINCT idCat FROM ".$prefix."_testquest
WHERE idTest=\"$idTest\"");
		while(list($idCat)=mysql_fetch_row($reCat)){
			//stampainfo categoria
			list($nameCat, $descrCat) = mysql_fetch_row(mysql_query("SELECT
name,descr FROM ".$prefix."_cattestver WHERE idCat=\"$idCat\""));
			if(($idCat != "0")&&(($visuSol)||($visuRis))) 
				echo "<center><b>$nameCat</b><br><br />$descrCat<br><br /></center>";
			$point = $totalpoint = "0";
			//stampadom e risposte
			$reQuest = mysql_query("SELECT idQuest,title,link,image FROM
".$prefix."_testquest WHERE idTest=\"$idTest\" AND idCat=\"$idCat\" ORDER
BY idQuest");
			if($visuSol)
				echo "<table width=\"100%\" border=\"0\" cellspacing=\"6\">";
			while(list($idQuest, $titleQuest, $link, $image) =
mysql_fetch_row($reQuest)) {
				if($visuSol)
					echo "<tr valign=\"top\"><td colspan=\"5\"
class=\"fontdomande\">$titleQuest";
					if($image != "") echo '<p><img src="'.$pathsavetest.$image.'"
border=0>';
					echo "</td></tr>";
				if(($link != "")&&($visuSol)) 
					echo "<tr valign=\"top\"><td colspan=\"5\"><a href=\"$link\"
target=\"_blank\">"
						._APPROF."</a></td></tr>";
				if($visuSol)
					echo "<tr><td width=\"2%\"></td>"
						."<td width=\"44%\"
class=\"sfondorisposte\"><b>"._ANSWERTEXT."</b></td>"
						."<td width=\"44%\"
class=\"sfondorisposte\"><b>"._COMMENT."</b></td>"
						."<td colspan=\"2\" width=\"10%\"></td></tr>";
				$reAnswer = mysql_query("SELECT
idRisp,textof,comment,flag,whtcorrect,whtincorrect FROM
".$prefix."_testrisp  WHERE idQuest=\"$idQuest\" ORDER BY idRisp");
				while(list($idRisp,$textof,$comment,$flag,$whtcorrect,$whtincorrect) =
mysql_fetch_row($reAnswer)) {
					if($visuSol)
						echo "<tr valign=\"top\"><td width=\"2%\"></td><td
width=\"44%\">$textof</td>"
							."<td width=\"44%\">$comment</td><td width=\"5%\">";
					if($flag && $visuSol)
						echo "<img
src=\"templates/".$_SESSION['sesTemplate']."/images/test/flag.gif\">";
					if($visuSol)
						echo "</td><td width=\"5%\">";
					if((($flag)&&(isset($answer[$idQuest][$idRisp])))||((!$flag)&&(!isset($answer[$idQuest][$idRisp]))))
					{
						if($visuSol)
							echo "<img
src=\"templates/".$_SESSION['sesTemplate']."/images/test/green.gif\">";
						switch($modval) {
							case "0" : 
							case "2" : $point = $point + $whtcorrect;break;
							case "1" : $point += "1";break;
						}
					}
					else {
						if($visuSol)
							echo "<img
src=\"templates/".$_SESSION['sesTemplate']."/images/test/red.gif\">";
						switch($modval) {
							case "0" : 
							case "2" : $point = $point - $whtincorrect;break;
						}
					}
 
//totale dei punti accumulabili
					switch($modval) {
						case "0" : 
						case "2" : $totalpoint = $totalpoint + $whtcorrect;break;
						case "1" : $totalpoint += "1";break;
					}
					if($visuSol)
						echo "</td></tr>";
				}
				if($visuSol)
					echo "<tr><td colspan=\"5\"><hr></td></tr>";
			}
			if($visuSol)
				echo "</table><br><br />";
			//visualizzazione risultati
			if($visuRis) {
				switch($modval) {
					case "0" : {
						echo "<b>"._TOTALIZE." $point "._POINTON." $totalpoint</b>";
					};break;
					case "1" : {
						echo "<b>"._PERCPOINT." :
".number_format(100-($point/$totalpoint)*100,2,'.','')." %</b><br><br
/>"._ADVICERESULT;
					};break;
					case "2" : {
						echo "<b>"._TOTALIZECAT." $point "._POINTON." $totalpoint</b>";
					};break;
				}
			}
			if($visuRis)
			echo "<br><br /><hr><br><br />";
//memorizzazione risultati
			if($track) {
				mysql_query("INSERT INTO ".$prefix."_testtrack
(idCourse,idUser,idTest,idCat,whendo,point) VALUES
('".$_SESSION['idCourse']."','".$_SESSION['sesUser']."','$idTest','$idCat',NOW(),'$point')");
			}	
		}
	}
//fine pubblicazione risultati del test
-------------
??!!?? :)		
