Avatar billede blackunicorn Nybegynder
30. november 2009 - 23:47 Der er 15 kommentarer og
1 løsning

Checkboxe

Jeg har en form der ser sådan ud.

Den opdaterer databasen fint nok, men når den trækker data ud, er begge checkboxe afkrydset, selvom kun et felt er afkrydset i databasen.

Kan nogen se hvad der er galt ?

<form action="opdater.php?id=<?=$row["id"]?>" method="POST" name="form1">';

<tr><td>Færdig</td></tr>
<tr><td>
<input type="checkbox" name="done" value="ja" <?php $row['done'] ?> == "ja" ? " checked" : "")."> Ja </font>
<input type="checkbox" name="done" value="nej" <?php $row['done'] ?> == "nej" ? " checked" : "")."> Nej</td></tr>

<tr><td>Leveret</td></tr>
<tr><td>
<input type="checkbox" name="leveret" value="ja" <?php $row['leveret'] ?> == "ja" ? " checked" : "")."><font color="#3799CF"> Ja </font>
<input type="checkbox" name="leveret" value="nej" <?php $row['leveret'] ?> == "nej" ? " checked" : "")."><font color="#3799CF"> Nej</font></td></tr>
   
<tr><td><input type="hidden" name="id" value="<? $row['id'] ?>"></td></tr>
<tr><td align="left"><input type="submit" value="Opdater"></td></tr>
</form>
Avatar billede alphabits Nybegynder
01. december 2009 - 00:38 #1
I alle dine input-tags afslutter du php for tidligt.
Erstat

<input type="checkbox" name="done" value="ja" <?php $row['done'] ?> == "ja" ? " checked" : "").">

med

<input type="checkbox" name="done" value="ja" <?php ($row['done'] == "ja") ? " checked" : "" ?> />
Avatar billede blackunicorn Nybegynder
01. december 2009 - 00:47 #2
Det virker desværre ikke efter hensigten, for nu er ingen af checkboxene afkrydset.
Avatar billede norsgaard Nybegynder
01. december 2009 - 01:00 #3
Hvad giver dine $row['done'] af output, hvis du f.eks laver en echo på dem ?
Avatar billede blackunicorn Nybegynder
01. december 2009 - 01:06 #4
De giver den rigtige værdi af feltet i databasen.
Avatar billede norsgaard Nybegynder
01. december 2009 - 01:39 #5
Tror der mangler et echo, prøv med :

<input type="checkbox" name="done" value="ja" <?php echo ($row == "ja") ? " checked" : "" ?> />
Avatar billede blackunicorn Nybegynder
01. december 2009 - 01:45 #6
Det gjorde ingen forskel, ingen af checkboxene er afkrydset.
Avatar billede norsgaard Nybegynder
01. december 2009 - 01:50 #7
Så lige en lille fejl i min input, hvis du bare tog den. Den skal selvfølgelig hedde :

<input type="checkbox" name="done" value="ja" <?php echo ($row['done'] == "ja") ? " checked" : "" ?> />

Havde glemt et ['done']  ved ikke om du fangende den, og det stadig ikke virker med denne?
Avatar billede blackunicorn Nybegynder
01. december 2009 - 01:58 #8
Tilføjede blot echo istedet for copy/paste, så den virker desværre stadig ikke.
Avatar billede norsgaard Nybegynder
01. december 2009 - 02:09 #9
Hvordan caster du helt bestemt din type på row['done'], er det en boolean eller string ?
Avatar billede blackunicorn Nybegynder
01. december 2009 - 02:23 #10
Jeg ville gerne svare dig, men så langt rækker min viden på området desværre ikke.

Kan du omformulere det, til et mindre fagligt sprog ?
Avatar billede norsgaard Nybegynder
01. december 2009 - 02:26 #11
Ja da selvfølgelig. Ville vide hvordan du havde gemt din data i databasen, som en tekst-streng, hvor der stod "ja" eller "nej" eller som en true eller false som kaldes boolean.

Du kan evt. lige prøve at ændre "ja" til true og "nej" til false, altså uden anførelsestegn og se om det gør en forskel.
Avatar billede blackunicorn Nybegynder
01. december 2009 - 02:33 #12
Det er gemt som en enum 'ja','nej'
Avatar billede norsgaard Nybegynder
01. december 2009 - 02:40 #13
Sidste desperate forsøg her for mig i aften, skal have lidt søvn snart, prøv med :

<input type="checkbox" name="done" value="ja"
<?php 
    if ($row['done'] == "ja") echo "checked";
?> />
<input type="checkbox" name="done" value="nej"
<?php
    if ($row['done'] == "nej") echo "checked";

?> />

Burde jo være det samme, men man ved jo aldrig.
Avatar billede blackunicorn Nybegynder
01. december 2009 - 02:45 #14
Desværre ingen ændring, men foreløbig tak for din tid og hjælp. Det er værdsat :)
Avatar billede blackunicorn Nybegynder
01. december 2009 - 02:54 #15
norsgaard dit forslag virkede fint, jeg havde blot kvajet mig.

I databasen stod enum angivet som 'Ja','Nej' (stort forbogstav) mens den i php koden stod med småt ja nej.

Jeg beklager hvis min fejl har givet unødig hovedbrud. Men smid et svar så du kan få dine point.

Endnu engang tak for hjælpen :)
Avatar billede norsgaard Nybegynder
01. december 2009 - 11:25 #16
Hehe, sådan er det jo tit. Kunne heller ikke begribe at det ikke ville virke, men godt det kom til at lykkes. :)
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