Avatar billede hewa Nybegynder
27. januar 2007 - 19:28 Der er 6 kommentarer og
1 løsning

Mærkering af checkbox efter database-udtræk

Jeg har gemt noget indhold i en database, og et af felterne afgør, om det skal vises eller ej. Feltet hedder vises og man kan sætte værdien til 'ja' eller 'nej'.

Når jeg så vil trække noget indhold ud i en form, fordi det skal redigeres, skal en checkbox have checked='checked', hvis vises er sat til 'ja'.

Jeg har prøvet med en lille kode over formen:
if ($row['vises'] == "ja"){
$checked="checked"
} else {
$checked = ""}
- og så sætter jeg værdien checked='$checked'

men det får det hele til at gå i stå.

Når ideer til jeg kan få det til at virke?
Avatar billede Slettet bruger
27. januar 2007 - 19:30 #1
if ($row['vises'] == "ja"){
$checked = "checked";
} else {
$checked = "";
}

ja du havde glemt ; efter dine $checked = "checked" og også efter $checked = ""
Avatar billede Slettet bruger
27. januar 2007 - 19:31 #2
Men hvis du nu er smart tilføjer du et mellemrum før checked.
altså $checked = " checked";
og så når du skal skrive det ud:
<input type="checkbox" name="vis" value="ja"<?PHP echo $checked; ?> />
Avatar billede hewa Nybegynder
27. januar 2007 - 19:40 #3
Åh ja, dem havde jeg glemt at skrive på, men de var godt nok på, da jeg testede det :)

Og det virker ikke... når jeg lægger den if sætning på, kommer der ikke noget i alle de andre felter.

Du kan lige se min kode, måske du kan se en fejl der:
$query = mysql_query("SELECT * FROM kategori WHERE cat_id ='".$_GET['cat_id']."'");
while($row = mysql_fetch_assoc($query))

if ($row['vises'] == "ja"){
$checked = "checked";
} else {
$checked = "";
}


echo "
<form action='' method='POST'>
<b>Menupunkt:</b> <br>
<input type='text' name='menupunkt' value='".$row['menupunkt']."' size='30'><br><br>
<b>Overskrift:</b> <br>
<input type='text' name='overskrift' value='".$row['overskrift']."' size='55'><br><br>
<b>Indhold:</b> <br>
<table width='100%' border=0><tr><td>
<textarea name='indhold' style='width: 100%;' rows='22'>
".$row['indhold']."
</textarea><br><br>
</td></tr></table><br>
<b>Rækkefølge i menuen:</b><br>
<input type='text' name='raekkefolge' value='".$row['raekkefolge']."' size='3'><br><br>
Vis kategori:
<input type='checkbox' name='vis' value='1' checked='".$checked."'<br><br>
<input type='submit' value='Gem' name='opret'>
</form>";
Avatar billede Slettet bruger
27. januar 2007 - 19:45 #4
Hvorfor laver du en while-løkke når du kun skal hive en ting ud?
Så kan du ændre
while($row = mysql_fetch_assoc($query))

->

$row = mysql_fetch_assoc($query);

Tror det er her fejlen lægger!
Avatar billede hewa Nybegynder
27. januar 2007 - 19:50 #5
Jeg må jo indrømme, jeg er helt ny i det her, så det kunne jeg ikke lige gennemskue :)

Nu kommer der godt nok noget i alle felterne, men checkboxen er altid mærkeret med "ja", så der ligger stadig en fejl i det. Kan du se, hvad det er?
Avatar billede hewa Nybegynder
27. januar 2007 - 20:00 #6
Nu fik jeg det til at virke :)

if ($row['vises'] == "ja"){
$checked = "checked ='checked'";
} else {
$checked = "";
}

Tusinde tak for hjælpen!
Avatar billede Slettet bruger
28. januar 2007 - 12:11 #7
Det var jo superb at det virkede!
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