[php] mijn checkbox wil niet cheken

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Dorgaldir
  • Registratie: September 2009
  • Laatst online: 10-04 22:52

Dorgaldir

Creature of the web

Topicstarter
Ik heb in een array $ar_toon een aantal getallen staan, die komen overeen met bepaalde getallen uit $ar_geg, nu wil ik van de gegevens uit $ar_geg een lijst checkboxes, maar de gegevens uit $ar_geg waarvan er een waarde is in $ar_toon moeten aangevinkt worden.

$ar_toon[0] = 1
$ar_toon[1] = 3
$ar_toon[2] = 5
$ar_toon[3] = 7

$ar_geg[0] = iets
$ar_geg[1] = iets
$ar_geg[2] = iets
$ar_geg[3] = iets
$ar_geg[4] = iets
...

dus in $ar_toon[0] staat 1, dwz dat in de lijst met checkboxes het gegeven dat uit $ar_geg[1] komt aangevinkt moet zijn.

Hier is mijn code
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
                        $g = 0;
            for ($i=0; $i<count($ar_geg); $i++) 
            {
                $nu = $ar_toon[$g];
                if ($nu == $i)
                {
                    ?><td><input name=tonen[] type=checkbox value="<? print $i;?>"checked="checked"><?print $ar_geg[$i];?></td><?
                    $g++;
                }
                else
                {
                    ?><td><input name=tonen[] type=checkbox value="<? print $i;?>"><?print $ar_geg[$i];?></td><?
                }
                $tes= fmod($i , 5);
                if ($tes == 0)
                {
                    ?></tr><tr><?;
                }
            }


En die doet het niet, hij vinkt enkel de eerste waarde aan, ookal staat deze niet altijd in $ar_toon.

Dank bij voorbaat.

Just me


Acties:
  • 0 Henk 'm!

  • BarôZZa
  • Registratie: Januari 2003
  • Laatst online: 12:28
Code lijkt prima te zijn. Is de $ar_toon goed gedefinieerd?
Want volgens mij krijg je anders dat je altijd 0 terugkrijgt doet en dus altijd de eerste pakt.

Voor de rest wel lelijk opgelost maar dat terzijde ;) .

[ Voor 25% gewijzigd door BarôZZa op 02-10-2009 15:56 ]


Acties:
  • 0 Henk 'm!

  • Dorgaldir
  • Registratie: September 2009
  • Laatst online: 10-04 22:52

Dorgaldir

Creature of the web

Topicstarter
Dat is nu net het vreemde, ik vind ook geen fouten in de code...
en om $ar_toon te testen heb ik dit gemaakt
code:
1
2
3
4
for ($i = 0; $i<count($ar_atoon); $i++)
    {
    print $ar_atoon[$i].'='.$i.' ';
    }

en dan kreeg ik dit 2=0 7=1 12=2 17=3

en ik weet dat ik niet het mooiste programeer maar als het werkt hoeft het niet mooi te zijn
sorry als ik jullie ogen pijn doe ofzo :P

[ Voor 22% gewijzigd door Dorgaldir op 02-10-2009 15:58 ]

Just me


Acties:
  • 0 Henk 'm!

  • sddb
  • Registratie: Augustus 2002
  • Laatst online: 26-04 22:42
In de else hoog je je teller $g niet op.

Overigens lopen dan teller $i en $g gelijk op.
Waarom haal je $g niet weg en gebruik je $i in $ar_toon[$g];

Verder vergelijk je in if ($nu == $i) de inhoud van $ar_toon[$g]; met je teller $i terwijl je wil weten of de waarde in $ar_geg voorkomt, gebruik daarvoor if (in_array($nu, $ar_geg) )

Krijg je overigens niet dat de 2e waarde altijd is aangevinkt ipv de 1e? De 1e keer dat je de for loop doorloopt is $i==0 en $nu == 1, dus if ($nu == $i) zou false moeten zijn.

[edit]

Zie dat je toch wat anders wil, niet de inhoud van ar_geg, maar de indexnrs staan in ar_toon. dan zou je if statement if (in_array($i, $ar_toon) ) moeten zijn.

[edit]

En dan zou het eigenlijk al moeten werken, zolang ar_toon maar gesorteerd is.

[ Voor 20% gewijzigd door sddb op 03-10-2009 16:16 ]


Acties:
  • 0 Henk 'm!

  • iBasch
  • Registratie: Februari 2009
  • Laatst online: 17-09 22:11
Klein dingetje, je gebruikt count($ar_geg) in je for loop. Dit betekent dat iedere keer dat de loop wordt uitgevoerd opnieuw de lengte van de array berekend wordt. Slimmer is om voor de loop $count = count($ar_geg) neer te zetten en die variabele te gebruiken.

Verder ben je een aantal quotes vergeten bij je checkboxes...

En om php highlighting aan te zetten gebruik je
[code=php][/code]

@sddb
Dat lijkt mij inderdaad de oplossing. Zat zelf ook even te kijken wat 'ie nou precies wilde. :P

Acties:
  • 0 Henk 'm!

  • Dorgaldir
  • Registratie: September 2009
  • Laatst online: 10-04 22:52

Dorgaldir

Creature of the web

Topicstarter
o nice if (in_array($i, $ar_toon) ) doet het werk.
Bedankt allen _/-\o_

Just me

Pagina: 1