28. april 2012 - 21:29Der er
25 kommentarer og 1 løsning
Checkbox, vis data så jeg kan ændre dem
Jeg har søgt både her og der men ikke fundet noget jeg kan forstå (og derfor bruge - det bliver lidt langhåret især når det ikke er på dansk):
Hvordan viser jeg på skærmen hvad der står i tabellen - altså hvilke opgaver der er valgt og så jeg kan ændre/tilføje?
Jeg mener at være nogenlunde med så langt som nedenstående - er dog i tvivl om hvad datatypen i tabellen kan/skal være (og hvor lang). Men jeg får da gemt data i tabellen:
Tabel: sag --------------------- sagnr : int(11) opgave : Binary(??) (har også prøvet bolean men det bliver ændret til tinyint!! Måske det samme?)
InsertData.php ------------------ <?PHP include "conn.php"; mysql_query("INSERT INTO tjekbox(sagnr, opgave) VALUES('$_POST[sagnr]', $opgave) "); ?>
TjekboxForm.php ---------------------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
Nej - når jeg har gemt indholdet af checkboxene fra formen hvor jeg opretter dem, skal jeg senere i en anden form have mulighed for at se og ændre dem.
Hmm, med chance for at jeg svare på noget andet så sætter du output fra databasen som value på form felterne. Fx. <input type="text" name="name1" value="'.$output_fra_aktuel_opgave.'">
Er du med på hvor jeg vil hen og er det rigtigt forstået at du vælger opgaverne og trykker submit, på næste side er de så hentet frem og lagt i input felter?
Opgaven er lige ud af landevejen, drejer sig kun om at vise "status" på den aktuelle checkbox i en form så jeg kan ændre dem. Principielt som du beskriver - jeg mangler bare lidt kode som jeg ikke selv kan "opfinde" da jeg ikke er hardcore programmør. Men jeg er rimelig go' til copy/paste og ekstrapolation.
Kære Calle5463 Du behøver ikke at blive snerpet, fordi timpet spørger lidt ind til din formulering.
Dit spørgsmål er: Hvad skal jeg bruge som datatype når den værdi der skal ind er numerisk og højst kan have værdien 31 (summen af checkboxe)?
Hvis du selv havde formuleret spørgsmålet sådan og undladt en masse kode og forvirrende mubojumbo, havde du sikkert fået svaret: tinyint og med length=3, hvis det skal være fornemt.
Undskyld, Timpet, hvis du læser det som #5 antyder - det var OVERHOVEDET ikke ment som andet end en nøgtern hjælp til hvor "dybt" mine skriblerier skulle fortolkes. (Hvis mit sprog har en "tone", som er det min frustration over egne manglende kvalifikationer der skinner igennem)
Til gengæld, vagnk, så synes jeg det var nødvendigt for at antyde hvad jeg kan og ikke kan finde ud af - jeg er ikke programmør som mange af i andre herinde. I øvrigt, tak for Typen.
Nu forstår jeg. Du har en decimal værdi i tabellen som er dannet ved sammenlægge binære værdier 0, 1, 2, 4...
Den decimale værdi vil du have splittet op i 1'er og 0'er, så du kan markere dine checkboxe som "checked" eller "". Den er nu (indrømmet) heller ikke helt nem at formulere, hvis kendskabet begrænset. Og lidt tricky fordi man skal køre loopet igennem i den ene retning og udskrive værdierne i den anden retning (highorder/loworder for at være bare en lille smule teknisk).
$sagnr='9'; // sagnr 9 giver $opg=9, som skulle give flueben i OP 1 og 4, hvilket nedenstående selvsagt ikke gør, da værdierne ikke bliver tildelt de respektive boxe (id'er) - kan det flettes med ind i for-løkken?
Har det betydning, at jeg vælger at tildele $opg værdien 0 (ikke NULL) hvis alle boxe er tomme (det er en tilladt mulighed) eller skal jeg lade $opg være NULL og give den første box værdien 0?
Jeg vil godt (skal) have, at alle checkboxe vises, så jeg har flg lidt forkortede kode:
$sagnr='9'; // sagnr 9 giver $opg=9, som skulle give flueben i OP 1 og 4, hvilket nedenstående selvsagt ikke gør, da værdierne ikke bliver tildelt de respektive boxe (id'er) - kan det flettes med ind i for-løkken? Hvad mener du? Er min algoritme forkert?
Har det betydning, at jeg vælger at tildele $opg værdien 0 (ikke NULL) hvis alle boxe er tomme (det er en tilladt mulighed) eller skal jeg lade $opg være NULL og give den første box værdien 0? Kommer helt an på hvad du vil bruge værdierne til. Du laver en array_sum på dine POST-variabler. Hvad tror du den giver hvis alle boxe er tomme eller med 0?
#11, første del: njaaeeehh, jeg vil helst ikke være overdommer på den, men JEG fik ikke helt det ud jeg regnede med = indsat i tabellen. Prøver lige igen med din kode om jeg kan se og beskrive hvad der forskellen.
#11, anden del: I den kode jeg bruger (se kode og fejl nedenfor) til at sætte data i tabellen får jeg en fejlmelding hvis alle 6 checkboxe er un-checked = "" = NULL. Det lavede jeg så et kvikfix til at afhjælpe (Jeg har i øvrigt tilladt NULL-værdier i tabellen.):
Hvis værdi i tabel er 0, viser den ingen checkboxe Hvis værdi i tabel er 1, viser den ingen checkboxe Hvis værdi i tabel er 2, viser den 1 unchked box Hvis værdi i tabel er 3, viser den 1 chked box
Hvis værdi i tabel er 9, viser den checkbox nr 1,2 og 3 og sætter flueben i nr 1
Den sidste med at sætte dem op i 3 kolonner, kan du sagtens selv klare.
Ideen med at bruge binære værdier er rigtig smart og kan bruges hvis man f.eks. skal tildele forskellige privilegier til brugere. Hvis man er bestyrelsesmedlem er man osse medlem og hvis man er gruppe administrator er man osse medlem af gruppen. Den kunne jeg godt have brugt for et par år siden, hvor jeg lavede noget "olebole" eller "ronols" garanteret ville klappe sig på lårene af grin over.
#22: layoutet er til at klare, dog kæmper jeg fortsat med at få checkboxene til at vise korrekt - lige nu er der sat flueben i alle uanset den binære værdi...
Ja, nu skal jeg bare have det implementeret i mit sagsstyring .... :-)
Synes godt om
Ny brugerNybegynder
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.