Avatar billede steven Nybegynder
09. september 2003 - 13:20 Der er 6 kommentarer og
1 løsning

Checkboxe, der ikke ved at de er krydset af

Hej eksperter!,

Jeg ahr lidt problemer med noget kode, der ikke lige opfører sig rigtigt.

Først skriver jeg en liste af checkboxe ud på siden. Alt efter om der er records i db'en, så er de checked eller ej:

********** KODE **********
for($i; $i<sizeof($RS); $i++)
{
  extract($RS[$i]);
           
  IF(fmod($i,2))
    $bgcolor = "$blaa05";
  else
    $bgcolor = "$blaa04";
             
  echo "<tr bgcolor=$bgcolor><td>$overskrift</td><td>&nbsp;</td><td>$kategorinavn</td><td>&nbsp;</td>";
       
  $SQL = "SELECT COUNT(1) as antal FROM rel_artikel_tema WHERE artikelid = $artikelid AND artikeltemaid = $artikeltemaid";
  $antalRS = sql_forespoerg($SQL);
  extract($antalRS['0']);
       
  if($antal == 0)
    echo "<td><input type='checkbox' name='checkbox[$artikelid]' value='on'></td></tr>";
  else
    echo "<td><input type='checkbox' name='checkbox[$artikeldid]' value='on' checked='checked'></td></tr>";
}
**************************

Når man submitter bliver resultatet sendt til samme side. Her bliver listen af checkboxe løbet igennem, og undersøgt om de er checked. De boxe, som maskinen har sat til checked (og som jeg ikke har rørt ved) bliver læst som om de ikke er checked af! - underligt.

********** KODE **********
for($i=0; $i<sizeof($artiklerRS); $i++)
{
  extract($artiklerRS[$i]);
         
  $checkbox = $_REQUEST['checkbox'];
  echo $checkbox[$artikelid];
         
  if ($checkbox[$artikelid] == 'on')
  {
    $SQL = "SELECT COUNT(1) as antal FROM rel_artikel_tema WHERE artikelid = '$artikelid' AND artikeltemaid = '$valgttema'";
    $RS = sql_forespoerg($SQL);

    //Hvis der ikke allerede er en artikel_tema relation.
    if($RS[0][0]==0)
    {
      $SQL = "INSERT INTO rel_artikel_tema (artikelid, artikeltemaid) VALUES ($artikelid, $valgttema)";
      sql_udfoer($SQL);
    }
  }
  else        //Skal slette eventuelle relationer der er for meget
  {
    $SQL = "SELECT COUNT(1) as antal FROM rel_artikel_tema WHERE artikelid = '$artikelid' AND artikeltemaid = '$valgttema'";
    $RS = sql_forespoerg($SQL);
           
    if($RS[0][0]>0)
    {
      echo $SQL = "DELETE FROM rel_artikel_tema WHERE artikelid = '$artikelid' AND artikeltemaid = '$valgttema'";
      sql_udfoer($SQL);
    }
  }
}
**************************

Håber på hurtig hjælp!

/Steven
Avatar billede di8leva Nybegynder
09. september 2003 - 13:26 #1
hvad hønder hvis du ændrer denna rad:

echo "<td><input type='checkbox' name='checkbox[$artikeldid]' value='on' checked='checked'></td></tr>";

til

echo "<td><input type='checkbox' name='checkbox[$artikeldid]' value='on' checked></td></tr>";
Avatar billede steven Nybegynder
09. september 2003 - 13:28 #2
di8leva>>
samme problem opstår.
/Steven
Avatar billede jakoba Nybegynder
09. september 2003 - 13:30 #3
er $artikelid et tal eller en streng? I din første select (hvor du skriver html-koden) har du ikke '-tegn om, i den anden selcet har du '-tegn om.

Hvor får $artikelid egentlig sin værdi. du bruger den i en løkke; men den bliver aldrig ændret indeni den løkke, så du får en masse checkbokse med samme name=... attribut. Kan det være du mener $i istedtfor $artikelid i løkken foroven?

mvh JakobA
Avatar billede steven Nybegynder
09. september 2003 - 13:32 #4
har løst problemet - sorry.
/Steven
Avatar billede odni Nybegynder
09. september 2003 - 13:32 #5
echo "<td><input type='checkbox' name='checkbox[$artikeldid]' checked></td></tr>";
Avatar billede jakoba Nybegynder
09. september 2003 - 13:36 #6
Oops, det er vel extract(($artiklerRS[$i]) der laver en $artikelid. sorry. Har du checket stavning? og checket den genererede html source om der står hvad du tror du skriver.
Avatar billede steven Nybegynder
09. september 2003 - 13:53 #7
.
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