Avatar billede 4u2x Nybegynder
27. juli 2006 - 21:59 Der er 5 kommentarer og
1 løsning

Vil hente forskellige $_POST under en FOREACH udførsel

Som titlen på mit spørgsmål siger, så har jeg forskellige $_POST værdier som fx ser sådan her ud:  $navn[1] og $efternavn[1]  <-- et sæt, som har hver sin $_POST men som hører sammen pga samme id under []

Her er hvad jeg har prøvet mig frem med:
foreach ($_POST[fornavn] as $a_fornavn => $v )
{
#    echo $a_fornavn;
    echo $_POST[fornavn][$v];
    echo $v['efternavn'];
}


En som kan sætte mig på rette spor? :)
Avatar billede Slettet bruger
27. juli 2006 - 22:02 #1
Så det ser sådan ud:

$_POST[0] = array('fornavn' => 'Jens', 'efternavn' => 'Hansen');
$_POST[1] = array('fornavn' => 'Hans', 'efternavn' => 'Jensen');

?
Avatar billede 4u2x Nybegynder
27. juli 2006 - 22:10 #2
Her er den kode hvor data indtastes..

<tr>
            <td>Fornavn: <input type=\"text\" name=\"fornavn[]\" size=\"20\" class=\"text\" /></td>
            <td>Efternavn: <input type=\"text\" name=\"efternavn[]\" size=\"20\" class=\"text\" /></td>
            <td>F&oslash;dselsdag: <input type=\"text\" name=\"fosdag[]\" size=\"8\" class=\"text\" /></td>
        </tr>
Avatar billede Slettet bruger
28. juli 2006 - 03:32 #3
Prøv med:

foreach($_POST['fornavn'] as $nummer => $navn)
{
  echo $navn . ' ' . $_POST['efternavn'][$nummer];
}
Avatar billede Slettet bruger
28. juli 2006 - 05:10 #4
Men endnu bedre ville det være, hvis du ændrede formularen, så du satte numre ind:

for($x=0;$x<$antal;$x++)
{
  echo <<<FÆRDIG
<tr>
            <td>Fornavn: <input type="text" name="person[$x][fornavn]" size="20" class="text" /></td>
            <td>Efternavn: <input type="text" name="person[$x][efternavn]" size="20" class="text" /></td>
            <td>F&oslash;dselsdag: <input type="text" name="person[$x][fosdag]" size="8" class="text" /></td>
        </tr>
FÆRDIG;
}

Bemærk forresten, at jeg har benyttet en særlig udskriftsmåde, som kaldes HEREDOC. Den kræver at afslut-koden (i dette tilfælde ordet "FÆRDIG") står som det første på en linie, og der må IKKE være andet end afslut-koden og eventuelt et semikolon på afslut-linien. Heller ikke mellemrum eller andre blanktegn. Til gengæld har metoden den fordel, at man ikke behøver alle de grimme \er ved hvert " og variable bliver stadig erstattet af deres værdi.

Og din input kan så se således ud:

foreach($_POST['person'] as $person)
{
  echo $person['fornavn'] . ' ' . $person['efternavn'];
}
Avatar billede 4u2x Nybegynder
28. juli 2006 - 23:08 #5
yeah lige præcis.. har også lavet noget der minder utrolig meget om det.. bare foreach som ikke var det samme :)  men din virker, så det cutter jeg li ind..heh..

lig et svar ;)
Avatar billede Slettet bruger
28. juli 2006 - 23:25 #6
svar
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