webForumDet fria alternativet
Logga in / Bli medlem

Hantering av multipla svar

PHP

1 svar · 393 visningar · startad av tunafish

Medlem sedan aug. 20074 inlägg
Trådstart#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!

Medlem 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!

258 ms totalt · 4 externa anrop · v20260731065814-full.50d4b5bd
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)