Avatar billede andsvel Nybegynder
15. september 2008 - 15:55 Der er 10 kommentarer og
1 løsning

checkbox onchange

Hejsa !
Jeg har et problem, eller nok nærmere en idé. Jeg ved bare ikke om det kan lade sig gøre..

Idéen er at checkboxene submit'er formen når de checkes eller uncheckes, så den også fungere som en indikator for en afsluttet eller uafsluttet opgave.


<? if($check == 1){echo '<input type="checkbox" name="check" value="0" onchange="this.form.submit()" checked>';}else{echo '<input type="checkbox" name="check" value="1" onchange="this.form.submit()">';}
?>

Dette gør noget - der hen ad - hvis $check ikke er 1 echo'er den denne: <input type="checkbox" name="check" value="1" onchange="this.form.submit()">

Den virker næsten som den skal. dvs. jeg checker den -og allerede her- burde siden opdatere med ændringen. Men det kræver lige et klik hvilket som helst sted på siden.

Den anden checkbox <input type="checkbox" name="check" value="0" onchange="this.form.submit()" checked>
Giver lidt sig selv at den ikke virker, eller nærmere gør som jeg vil.

Den er checked, jeg unchecker, siden opdaterer(efter klik på siden). men opdatere ikke noget, da jeg har unchecked den.

findes der en smart måde at gøre dettte på?
Avatar billede w13 Novice
15. september 2008 - 16:07 #1
Det lyder mærkeligt, det med et klik på siden. Kan vi evt. se et link til problemet?
Avatar billede andsvel Nybegynder
15. september 2008 - 16:11 #2
http://www.moveon-partners.com/basic/mapper/

Du skal lige finde en opgave der stadig er rød ;P
Avatar billede w13 Novice
15. september 2008 - 16:17 #3
Det skyldes vel, at onchange først registreres, når focus fjernes fra boksen. Prøv at ændre onchange til onclick (og alternativt til onfocus, hvis du skulle opleve problemer med onclick). Det burde fungere fint.
Avatar billede andsvel Nybegynder
15. september 2008 - 17:26 #4
grandtastisk :-) har du et bud på det med den anden box?

Den er checked, og skal poste et "0" onclick, dvs. når man "unchecker" den.

Kan det lade sig gøre?
Avatar billede w13 Novice
15. september 2008 - 17:48 #5
Det kan sagtens lade sig gøre, men jeg er ikke helt sikker på, hvad problemet er. =)
Avatar billede andsvel Nybegynder
15. september 2008 - 18:09 #6
hehe :P

prøver igen så

Hvis $check er 1, henter den en checkbox. Og denne er checked.

altså:

if($check == 1){echo '<input type="checkbox" name="check" value="0" onchange="this.form.submit()" checked>';}

Når man trykker på den, fjerner man rettetegnet og min Mysql streng køre.

Men, da man "unckecker" den, opdatere man ikke databasen med et "0", der hvor der stod "1". Det kunne være fedt hvis den opdaterede.

Ellers må jeg jo snyde med et hidden felt ;P
Avatar billede w13 Novice
15. september 2008 - 19:54 #7
Ok, men det skal vel sættes samme sted, som du sætter det til 1 i databasen, skal det ikke? Så fejlen ligger vel der.
Avatar billede andsvel Nybegynder
16. september 2008 - 13:49 #8
Nu det mig der ikke helt forstår :P var af den klare opfattelse at en checkbox ikke sender sin value medmindre den er "checked"

However jeg løste det sådan:

if($check == 1){echo '<input type="checkbox" name="dummy" value="0" onclick="this.form.submit()" checked>Ikke fuldført<input type="hidden" name="check" value="0">';}else{echo '<input type="checkbox" name="check" value="1" onclick="this.form.submit()">Fuldført';}

Og du gav mig svar på det vigtigste ! så mange tak for hjælpen :-)
Avatar billede w13 Novice
16. september 2008 - 14:18 #9
Ok. :)

Du har også ret. Som sagt misforstod jeg problemet.
Avatar billede andsvel Nybegynder
16. september 2008 - 21:34 #10
ahh, den fløj mig lige forbi. men tak igen ! :)
Avatar billede w13 Novice
16. september 2008 - 22:04 #11
Det har jeg så vist ikke sagt alligevel, så never mind. :P
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