webForumDet fria alternativet

Checkboxar - Hur i... ?

6 svar · 316 visningar · startad av aasah

aasahMedlem sedan mars 20034 471 inlägg
#1

Jag har börjat tillämpa PHP utan att vara speciellt hemma på HTML och nu har jag kört huvudet i väggen... Misstänker att jag komplicerar allting otroligt just nu. Snälla hjälp, checkboxar verkar vara ett knepigt område... :OO

Håller på att konstruera en speciell frågesport där mer än ett svar är rätt. Alltså använder jag checkboxar. Då vill jag döpa alla inputfält som hör till fråga x för "qx[]" fast med olika index.

Och då inställer sig frågan: Hur kollar jag dessa värden sedan? De skickas med POST. Om jag förstår det hela rätt kan man inte skriva
$_POST[q1[3]] tex. Så hur kollar jag om index i är satt för fråga qk? :q

PeeerMedlem sedan mars 20025 907 inlägg
#2

Du kan inte göra så. Antingen får du ge unika namn till alla checkboxar (ex. qx_1, qx_2, qx_3 osv), eller så får du ge samma namn till alla checkboxar och identifiera vilka checkboxar som är valda utifrån dess olika value.

aasahMedlem sedan mars 20034 471 inlägg
#3

Peeer skrev:

Du kan inte göra så. Antingen får du ge unika namn till alla checkboxar (ex. qx_1, qx_2, qx_3 osv), eller så får du ge samma namn till alla checkboxar och identifiera vilka checkboxar som är valda utifrån dess olika value.

Kan du förklara med ett exempel? :q Jag har troligen missförstått Mattes råd här...

supremeMedlem sedan sep. 2002252 inlägg
#4

Är lite trött nu så vet inte om det jag skriver är rätt men du kan loppa genom alla post element med foreach metoden.

foreach ($_POST as $name => $value) {
   echo "Name: $name; Value: $value<br />\n";
}

Testa denna koden och se om det inte hjälper dig. Har du mer än bara checkboxarna på sidan så kan du ge boxarna ett specielt namn t.ex checkX där X är iett unikt id för checkboxen. För att sedan bara behandla checkboxarna så kollar du bara om substring($name, 0,5) == 'check'.

Hoppas att detta hjälper dig.

PeeerMedlem sedan mars 20025 907 inlägg
#5

aasah skrev:

Peeer skrev:

Du kan inte göra så. Antingen får du ge unika namn till alla checkboxar (ex. qx_1, qx_2, qx_3 osv), eller så får du ge samma namn till alla checkboxar och identifiera vilka checkboxar som är valda utifrån dess olika value.

Kan du förklara med ett exempel? :q Jag har troligen missförstått Mattes råd här...

Nej, det var jag som fattade lite trögt bara :)

Om du har kryssrutor som heter typ q1[1], q1[2], q2[4], q3[5] osv så kan du kolla dom med ex.

if(isset($_POST['q1'][2]))
lunne82Medlem sedan dec. 2003153 inlägg
#6

Äsch då, Peeer var lite snabbare. :)

Som han skrev så döper du dem till name="q1[]", name="q2[]", osv. Sen läser du dem bara med $_POST[´q1'][0].

aasahMedlem sedan mars 20034 471 inlägg
#7

Peeer var snabbare, men du var tydligare, lunne82.

TACKAR! Äntligen begriper jag! :D :birp

Och nu funkar skriptet också.

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