webForumDet fria alternativet

Hantering av multipla svar

1 svar · 391 visningar · startad av tunafish

tunafishMedlem sedan aug. 20074 inlägg
#1

Hej!

Håller på med ett ideellt skolprojekt och är själv närmare amatör än proffs på programmering.

Sitter just nu med funktionaliteten för att skapa användarkonton. Lärarna ska då bland annat ange vilka klasser de undervisar. I MySQL-databasen finns en usertabell, där bland annat lärarna återfinns som individuella poster. Alla användare, dvs även admin personal, elever och föräldrar, finns i samma tabell men med olika typkoder.

En annan tabell hanterar vilka olika klasser som finns på skolan.

Nu har jag skapat en korsningstabell där en post består av ett lärarid och ett klassid. En lärare som har flera klasser får alltså flera poster i tabellen. Så långt är det ju inget konstigt. Månge undervisningsexempel har ju en liknande grej med katalogisering av böcker där en författare skriver flera böcker.

Men jag får ingen ordning på att fånga upp värdena när en lärare har flera klasser. I kontoskapandet anger vederbörande om han/hon undervisar en eller flera klasser. Registering till kopplingstabellen är inget problem när det är fråga om en klass. Den har jag fått att fungera.

Den koden ser ut så här:

function userreg_GetClass($classid, $dbh) {
$classid = $_REQUEST['classID'];

// Laddar befintliga avdelningar och klasser från databasen
$result = @mysql_query("SELECT classID, class_NAME FROM skolwebb_class ORDER BY classID", $dbh);
$buffer .= '\<select name="classID"\>\<option value=""\>- Välj klass\</option\>';
while($rad = @mysql_fetch_array($result)) {
    if($classid == $rad\['classID'\]) {
        $buffer .= '\<option value="'.$rad\['classID'\].'"selected\>'.$rad\['class_NAME'\].'
        \</option\>';     
    } else {
        $buffer .= '\<option value="'.$rad\['classID'\].'"\>'.$rad\['class_NAME'\].'
        \</option\>';     
    }
}
$buffer .= '\</select\>';

return $buffer;

}

Men när det gäller att hantera flera har jag kört fast rejält. Jag får till både en select-multiple-lista och en checkbox och allt det. Men får alltså inte upp värdena.

Tusen tack på förhand någon där ute!

aasahMedlem sedan mars 20034 471 inlägg
#2

Inte säker på att jag förstår frågan, men om du ska ha multipla svar i en selectbox bör du döpa den till:

<select name="multi[]">
<option value="id1">7A</option>
<option value="id2">7B</option>
<option value="id3">8C</option>
...</select>

"[]" efter namnet gör att allt du väljer lagras efter vartannat i en array. Om nu någon väljer 7A och 8C kan värdena hämtas genom en:

//Om formen skickas med get
foreach ($_GET["multi"] as $id)
   //gör vad du ska med ett id i taget

//Om formen skickas med post
foreach ($_POST["multi"] as $id)
   //gör vad du ska med ett id i taget

Använd kodtaggarna i dina inlägg så blir det mycket lättare att läsa!

134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)