08. oktober 2004 - 10:12
Der er
21 kommentarer
gemme checkboxe i 3d-array
Hvordan gøres dette? Jeg har på en side en masse checkboxe, som er parents med childs, fx: []name="parent_id[$id]" []name="sub_id[$id]" []name="sub_id[$id]" []name="sub_id[$id]" []name="parent_id[$id]" []name="sub_id[$id]" []name="sub_id[$id]" []name="parent_id[$id]" []name="sub_id[$id]" []name="sub_id[$id]" Disse forskellige parents og sub arrays vil jeg gerne gemme på næste side når man submitter, i et 3d-array (eller en anden måde hvis der er noget smartere) som skal gemmes i en session. Hvordan gøres dette? På forhånd tak.
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
08. oktober 2004 - 10:20
#1
Må gerne gemmes i stil med: foo = array( "parent_id[1]" => array( "sub_id[42]" => array(), "sub_id[7]" => array() ), "parent_id[4]" => array( "sub_id[9]" => array() ) );
08. oktober 2004 - 10:22
#2
...hvis det er en smart måde altså :) har ikke prøvet denne slags før.
08. oktober 2004 - 10:41
#3
Du skal ikke bruge de første klammer: name="parent_id[$id]" name="sub_id[$id]" name="sub_id[$id]" name="sub_id[$id]" name="parent_id[$id]" name="sub_id[$id]" name="sub_id[$id]" name="parent_id[$id]" name="sub_id[$id]" name="sub_id[$id]"
08. oktober 2004 - 10:43
#4
de første klammer var for at illustrere mine checkboxes i outputtet. [] [] [] [] [] [] [] [] [] [] Parents har navent parent_id[$id] og childs har sub_id[$id]
08. oktober 2004 - 10:46
#5
Aha, men hvad er så problemet. Vil du ha' de enkelte array's til at indeholde nye array's?
08. oktober 2004 - 10:52
#6
Hvordan skal jeg få fat i de valgte checkboxe og gemme dem i et sådan array? Og hvordan skal array'et gemmes i en session?
08. oktober 2004 - 11:02
#7
Jeg forstår bare ikke helt, i dit eksempel ser det ud til du vil have array's som værdier. For så bliver det lidt mere kringlet. Eller skal de bare have almindelige værdier?
08. oktober 2004 - 11:05
#8
Hvis det bare er alm. værdier, ligger du dem i en session med: <?php session_start(); if (isset($_POST['submit'])) { $_SESSION['parent_id'] = $_POST['parent_id']; $_SESSION['child_id'] = $_POST['child_id']; } ....osv
08. oktober 2004 - 11:08
#9
ehm, det vil ikke gemme noget array i min session? Det vil blot gemme det id der er sidst tilføjet, session variablen vil blive overskrevet for hver ny værdi. Skal gemme et tredimensionelt array i en session.
08. oktober 2004 - 11:11
#10
Mener du ikke et todimensionelt array? Eller skal de enkelte array's indeholde nye array's?
08. oktober 2004 - 11:11
#11
Har muligvis taget fejl af begreberne, de skal gemmes sådan: foo = array( "parent_id[1]" => array( "sub_id[42]" => array(), "sub_id[7]" => array() ), "parent_id[4]" => array( "sub_id[9]" => array() ) );
08. oktober 2004 - 11:16
#12
Ok så, men mener du ikke: foo = array( "parent_id[1]" => array( "sub_id[42]" => 'værdi', "sub_id[7]" => 'værdi' ), "parent_id[4]" => array( "sub_id[9]" => 'værdi' ) );
08. oktober 2004 - 11:21
#13
Så vil jeg mene du skal lave formen i den her stil: name="parent_id[1][42]" name="parent_id[1][7]" name="parent_id[4][9]"
08. oktober 2004 - 11:29
#14
Her er et eksempel: <?php session_start(); $form = "<form action='' method='post'>\n"; $i = 0; while ($i<5) { $form .= "parent $i:<br />"; $j = 0; while ($j<5) { $form .= "child $j: <input type='checkbox' name='parent_id[$i][$j]' value='ja' "; $form .= "/>\n"; $j++; } $form .= "<br />\n"; $i++; } $form .= "<input type='submit' name='submit' value='Opdater'>\n"; $form .= "</form>\n"; echo $form; if (isset($_POST['submit'])) { $_SESSION['parent_id'] = $_POST['parent_id']; echo "parent_id's:<br />\n"; foreach ($_SESSION['parent_id'] as $key=>$array) { echo "Key: $key<br />\n"; print_r($array); echo "<br />\n"; } } ?>
08. oktober 2004 - 11:32
#15
Og jo array ligger i SESSION variablen ;o)
08. oktober 2004 - 11:34
#16
at lave mit input felt på den måde, giver da en helt anden struktur? Jeg vil mene at den måde jeg skrev, var korrekt. foo = array( "parent_id[1]" => array( "sub_id[42]" => array(), "sub_id[7]" => array() ), "parent_id[4]" => array( "sub_id[9]" => array() ) ); "parent_id[1]" => array( "sub_id[42]" => array(), "sub_id[7]" => array() ), Et array med arrays tilhørende arrays indeni.
08. oktober 2004 - 11:35
#17
Værdien jeg skal gemme (value="") == id'et.
08. oktober 2004 - 11:37
#18
Det bliver så osse resultatet af mit eksempel. Nu har jeg bare brugt nøglerne 0-4 i mit eksempel, men de kan selvfølgelig sagtens hentes fra et andet array eller en database.
08. oktober 2004 - 11:40
#19
Jeg misforstår muligvis, men du vil have mig til at mine input felter skal navngives: name="parent_id[4][9]" ? Dette kan ikke lade sig gøre.
08. oktober 2004 - 11:59
#20
Hvorfor kan det ikke lade sig gøre?
08. oktober 2004 - 12:03
#21
Her er et eksempel: <?php session_start(); $form = "<form action='' method='post'>\n"; $ids = array(1=>array(7,42),4=>array(9)); // Her indsætter du så div. parent/child id's foreach ($ids as $i=>$arr) { $form .= "parent $i:<br />"; foreach ($arr as $j) { $form .= "child $j: <input type='checkbox' name='parent_id[$i][$j]' value='ja' "; $form .= "/>\n"; } $form .= "<br />\n"; } $form .= "<input type='submit' name='submit' value='Opdater'>\n"; $form .= "</form>\n"; echo $form; if (isset($_POST['submit'])) { $_SESSION['parent_id'] = $_POST['parent_id']; echo "parent_id's:<br />\n"; foreach ($_SESSION['parent_id'] as $key=>$array) { echo "Key: $key<br />\n"; print_r($array); echo "<br />\n"; } } ?>
Vi tilbyder markedets bedste kurser inden for webudvikling