Avatar billede donslund Nybegynder
15. august 2003 - 19:50 Der er 10 kommentarer og
1 løsning

automatisk dannelse af variabel

Jeg har brug for, at danne variablerne $box1, box2, box 3 osv.

Jeg gør det for at checke om de er lig 1. Jeg benytter en for-rutine og laver variablen med $box.$i

for ($i=1; $i<=52; $i++) {
    if ($box.$i == 1) {
        $afkrydsede = $afkrydsede.$i.",";
        print $afkrydsede;
}
}

Men jeg tror sgu ikke det virker.
Avatar billede jakoba Nybegynder
15. august 2003 - 19:55 #1
Det er korrekt at det virker ikke. Men du er tæt på:

    if (${'box'.$i} == 1) {
        $afkrydsede = ${'afkrydsede'.$i}.",";
        print $afkrydsede;
    }

jeg går ud fra (ovenfor) at det er samme situation med $afkrydsede1, ...2 og ...3

mvh JakobA
Avatar billede donslund Nybegynder
15. august 2003 - 19:58 #2
det er bare en streng ($afkrydsede) der skal tilføjes en stump streng hvis $box-variablen er lig et.
Avatar billede jakoba Nybegynder
15. august 2003 - 20:00 #3
Ok, så skal det blot være som du havde det :-))
men mon så ikke du ønsker at flytte den print sætning ud til bagefter for-løkken
Avatar billede donslund Nybegynder
15. august 2003 - 20:02 #4
jo, men det er blot for at se om der sker noget.

Det andet virker i øvrigt ikke.

for ($i=1; $i<=52; $i++) {
    if (${'box'.$i} == 1) {
        $afkrydsede = $afkrydsede.$i.",";
        print "afkrydsede=".$afkrydsede;
    }
}
Avatar billede jakoba Nybegynder
15. august 2003 - 20:02 #5
Ups. det kunne misforstås.

    if (${'box'.$i} == 1) {                // denne linie ændres
        $afkrydsede = $afkrydsede.$i.",";  // denne linie er som den var før
        print $afkrydsede;
    }
Avatar billede donslund Nybegynder
15. august 2003 - 20:06 #6
if sætningen bliver aldrig sand. Det den checker er afkrydsningsfelter fra en formular.
Avatar billede jakoba Nybegynder
15. august 2003 - 20:08 #7
Søreme jo det virker. du kan evt udvide med en test af om der overhovedet er en $boxN variabel:

    if ( isset( ${'box'.$i} ) && ${'box'.$i} == 1) {

hvis det ikke virker er der hoget helt andet galt et sted, fx at din php-version ikke automatisk laver en variabel med navnet $box1 når den får submitted en form hvor der er et felt med det navn. prøv evt:

    if ( isset( $_POST['box'.$i] ) && $_POST['box'.$i] == 1) {

om det er det.
Avatar billede jakoba Nybegynder
15. august 2003 - 20:12 #8
Det kan også være du skriver dine afkrydsningsfelter forkert i htmlkoden. de skal have  value="1"
Avatar billede erikjacobsen Ekspert
15. august 2003 - 20:53 #9
Man kan også,  hvis de som jeg antager kommer fra en form, blot:

  $_POST["box$i"]

der er ikke så meget mystik i det ;)
Avatar billede erikjacobsen Ekspert
15. august 2003 - 20:53 #10
Nej nej, Erik - det har jakoba allerede skrevet .... glem det *g*
Avatar billede donslund Nybegynder
17. august 2003 - 17:53 #11
ja jakoba, det var jo rent faktisk det med value=1 der gjorde udslaget.

Tak for hjælpen.
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