webForumDet fria alternativet

hämta värde från checkboxar med samma namn

PHP

8 svar · 320 visningar · startad av Type

Medlem sedan mars 20021 239 inlägg
Frågan#1

Hej!
Ursäkta att rubriken blev lite lång ;)

Jag har en massa checkboxar som heter samma namn (kurser) och vill att alla som bockas i ska läggas i en array när de skickas som man når via php mha $_POST['kurser'];

Är det så det funkar?

Jag vet inte hur jag ska skriva för att hämta ut varje värde ur arrayen (om det nu blir någon :P).

<input type="checkbox" class="middle" name="kurser" value="Grundkurs i Massage, Hudiksvall"/> Grundkurs i Massage, Hudiksvall<br/>
<input type="checkbox" class="middle" name="kurser" value="Grundkurs i Massage, Sundsvall"/> Grundkurs i Massage, Sundsvall<br/>
<input type="checkbox" class="middle" name="kurser" value="Fortsättningskurs i Massage, Hudiksvall"/> Fortsättningskurs i Massage, Hudiksvall<br/>
<input type="checkbox" class="middle" name="kurser" value="Fortsättningskurs i Massage, Sundsvall"/> Fortsättningskurs i Massage, Sundsvall<br/>
<input type="checkbox" class="middle" name="kurser" value="Massage på arbetsplatsen"/> Massage på arbetsplatsen<br/>

hur går detta alltså när jag ska hämta värdet på resultatet?

Medlem sedan okt. 2001538 inlägg
#2

Om du lägger till [] efter kurser i name
exempel:

<input type="checkbox" class="middle" name="kurser[]" value="Grundkurs i Massage, Hudiksvall"/> Grundkurs i Massage, Hudiksvall<br/>

Så bör nu alla ikryssade kurser hamna i $_POST['kurser']
(förutsatt att du satt formulärets metod till post och inte get.)

$_POST['kurser'] är nu en array med alla ikryssade checkboxar i.
Så om du kör en liten foreach loop på $_POST['kurser'] så kommer du att se allt som ligger däri.

MVH Patrik

Medlem sedan mars 20021 239 inlägg
#3

Tack patrik81, Fantastiskt! Nu funkar det! Tack!

<input type="checkbox" class="middle" name="kurser[]" value="Grundkurs i Massage, Hudiksvall"/> Grundkurs i Massage, Hudiksvall<br/>

tex...

PHP-koden ser ut så här:

$i=0;
foreach($_POST['kurser'] as $kurs){
	$kurser[$i++]=$kurs;
}

och skrivs ut så här:

foreach($kurser as $kursen){
	print($kursen);
	print("<br/>");
}

foreach-funktionen va ju riktigt bra!!! aldrig använt förut... tack!

Medlem sedan okt. 2001538 inlägg
#4

Kul att kunna vara till nytta :)

Hade jag varit du, så hade jag iofs i din första loop struntat i $i=0; och $i++ och bara kört:

foreach ($_POST['kurser'] as $kurs)
{
    $kurser[] = $kurs;
}

Men det blir ju samma kod i slutändan så ditt sätt är inte fel, jag bara gör såhär istället, så slipper jag bråka med $i++ där.

Men så länge det funkar så :)

MVH Patrik

Medlem sedan mars 20021 239 inlägg
#5

Nu har jag ett annat problem... när jag ändrade namnet till kurser[] så funkar inte min javascript-verifikation på att någon av selectsatserna var ibockad.... den kod jag använder är:

var error=true;
for(var i=0;i<f.kurser.length;i++){
	if(f.kurser[i].checked)
		error=false;
}
	
if(error){
	alert("Du måste välja en kurs");
	return false;
}

vi har ju ändrat namnet kurser till kurser[] och jag förstår inte hur jag ska göra..

Medlem sedan mars 20021 239 inlägg
#6

om jag skriver som du rekomenderade... struntade i variabeln i så skriver den ut allt två gånger... ehh?

Medlem sedan okt. 2001538 inlägg
#7

Det låter ju lite skumt, så har det aldrig blivit för mig ;)

om du skriver:

foreach($_POST['kurser'] as $key => $value)
{
   echo($key . " = " . $value);
}

Vad kommer det för text på skärmen då?

Ivarjefall... funkar ditt sätt så kör det då istället, för uppenbarligen då så funkar det ju bättre :) men hmmm, konstigt...

Javascript är jag ju ingen höjdare på, men kan det vara såhär enkelt?

var error=true;
for(var i=0;i<f.kurser[].length;i++){
	if(f.kurser[][i].checked)
		error=false;
}
	
if(error){
	alert("Du måste välja en kurs");
	return false;
}

Ganska låg sannolikhet att det skulle fungera, men kan ju vara värt ett försök, annars är det nog bättre att kila över till javascript forumet och ställa frågan, eller be en moderator att flytta denna tråden dit.

MVH Patrik

Medlem sedan mars 20021 239 inlägg
#8

Ang. php: Det verkar funka nu... vet inte vad jag gjorde för fel förut... men nu funkar det bra utan i iaf...

ang. javascript: näe, sådär försökte jag mä. men jag drar till javascript-forumet sen istället. tack för hjälpen!

Medlem sedan okt. 2001538 inlägg
#9

Det var så lite, bara glad att kunna vara till hjälp.

MVH Patrik

274 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)