Avatar billede Dennis3D Nybegynder
08. august 2011 - 13:57 Der er 8 kommentarer og
1 løsning

Lave en Array ud fra checkbox

Hey Eksperten.

Jeg har et hurtigt spørgsmål. Jeg prøver at hente data fra min html kode:

<input type="checkbox" name="programs" value="maya,">Maya Autodesk<br>
<input type="checkbox" name="programs" value="3dsmax,">3DS Max Autodesk<br>
<input type="checkbox" name="programs" value="mudbox,">Mudbox Autodesk<br>
<input type="checkbox" name="programs" value="blender,">Blender<br>
<input type="checkbox" name="programs" value="cinema,">Cinema 4D Maxon<br>
<input type="checkbox" name="programs" value="lightwave,">LightWave 3D Newtek<br>

Hvordan henter jeg alle dataerne i php? Jeg har prøvet mig frem men jeg har meget svært ved at gemmenskue det, jeg kan kun få skrevet det sidste jeg har checket af.

Tak på forhånd

/Dennis
Avatar billede jakobdo Ekspert
08. august 2011 - 13:58 #1
Prøv at ret til:

<input type="checkbox" name="programs[]" value="maya,">Maya Autodesk<br>
<input type="checkbox" name="programs[]" value="3dsmax,">3DS Max Autodesk<br>
<input type="checkbox" name="programs[]" value="mudbox,">Mudbox Autodesk<br>
<input type="checkbox" name="programs[]" value="blender,">Blender<br>
<input type="checkbox" name="programs[]" value="cinema,">Cinema 4D Maxon<br>
<input type="checkbox" name="programs[]" value="lightwave,">LightWave 3D Newtek<br>

Og på din post side, print:

echo '<pre>';
print_r($_POST['programs']);
echo '</pre>';
Avatar billede Dennis3D Nybegynder
08. august 2011 - 14:19 #2
fedt man, det virker

er der en måde hvor jeg kan sætte fx. $programs = maya, 3dsmax, osv. (som er values fra $_POST['programs'])?

Således at jeg kan putte det ind i et database felt.
Avatar billede jakobdo Ekspert
08. august 2011 - 14:29 #3
Vises maya osv.. ikke, når du laver print af $_POST['programs'] ?
Avatar billede Dennis3D Nybegynder
08. august 2011 - 14:35 #4
Jo der udskriver den:

Array
(
    [0] => maya,
    [1] => 3dsmax,
    [2] => mudbox,
    [3] => blender,
    [4] => cinema,
    [5] => lightwave,
)

Men hvis jeg prøver at sætte:

$programs = $_POST['programs'];

og derefter skrive det i en database skriver den bare "Array"
Avatar billede jakobdo Ekspert
08. august 2011 - 14:41 #5
Ja, du skal så løbe dit array igennem.
Evt. kig på foreach() eller en for-løkke.
Avatar billede Dennis3D Nybegynder
08. august 2011 - 15:01 #6
Okay, tror jeg fandt en god løsning

Jeg bruger serialize() til at gemme i databasen og henter den så ved at bruge unserialize() det fungere ret godt. og så laver jeg lykken når jeg henter fra databasen.

hvis andre er interesseret i det kan der læses her:
http://www.evolt.org/node/60222

Tak Jakobdo :) Du kan bare smide et svar hvis du gerne vil have points.
Avatar billede jakobdo Ekspert
08. august 2011 - 15:08 #7
Svar
Avatar billede jakobdo Ekspert
09. august 2011 - 08:06 #8
Takker for point.
Du bør dog nok stile mod en løsning, hvor du gemmer maya, 3dmax etc.. i en tabel for sig.
og laver en mange til mange løsning.
arrays i et felt i db, er lidt fy...
Avatar billede Dennis3D Nybegynder
09. august 2011 - 11:07 #9
Okay mange tak for info :)

Pt. virker det dog fint. Jeg havde lidt problemer med at vise når en bruger ændrer sig profil hvilket bokse der er krydset af i forvejen, fx. Maya kan være krydset af hvis brugeren allerede har gjort det.

Men nu virker det, hvis det går i stykker vil jeg self. rette det, men har en ret stram deadline.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester