![]() |
Hej!
Jag har ett formulär som ska skicka information till MySQL med PHP. Informationen ska aldrig skrivas ut som text, utan den ska endast användas till att visa samma formulär som en ifylld blankett, typ. Vanliga textfält har jag fått ordning på, men hur gör jag med Checkbox? Först och främst, vad blir det för slags värde som ska sparas i SQL basen? Och hur får jag PHP´n att kryssa i checkboxarna igen? (Liksom motsvarande: echo '.htmlentities($data['infodata']).') |
Ifall en checkbox är ikryssad skickar webbläsaren $_REQUEST['checkboxnamn'] = "on". Jag brukar använda isset($_REQUEST['checkboxnamn']) när jag kollar för om den inte är ikryssad skickar den inte något alls. Vilket värde du vill ska sparas i databasen kan du ju välja själv.
För att göra en checkbox för kryssad lägger man till checked. T ex <input type="checkbox" name="check1" checked> alt. är då att göra <? if(isset($_REQUEST['check1'])) { $ch = " checked"; } else { $ch = "" } ?> <input type="checkbox" name="check1"<? echo $ch; ?>> Har du ett script som skapar dynamiska checkboxar kan du sätta name=\"checkbox[$i]\" i exempelvis en loop. och öka $i för varje loop. På så vis hamnar datat i en array. |
Hmm... jag tror jag lurade mig själv där, förmodligen inte Er, men ni skrattar väl åt mig, det lilla kod-citatet jag klistrade in var väl just den biten jag inte använder, den för att skriva ut informationen. Men nu vet ni ju alla hur grön jag är på PHP och kanske har ni då förståelse för att jag inte riktigt hänger med ännu =)
När jag fångar in textfälten har jag använt: <input name="arbpl" type="text" value="<?php echo !empty($data['arbpl']) ? $data['arbpl'] : '' ?>"> Och jag tror att detta både fångar in samt skriver tillbaka informationen? Men jag kan alltså inte helt enkelt fånga ett "kryss" och få det tillbaka som ikryssat utan måste skapa en funktion för att "kolla läget"? Jag har bara testat PHP i en vecka så jag har svårt att se helheten så at säga, vad som ska göras vart osv... |
Du får värdet ON eller OFF...
|
Jag har inte riktigt tackat Er än, Silon och Satyr, så jag gör det nu med en gång, tack!
För den som är intresserad av hur jag till slut löste mitt problem (vilket blev en kombination av föreslagna koder både härifrån och från vänner och bekanta) tänkte jag visa min kodrad. Det jag vill utföra med koden är alltså att först fånga in kryss/ej kryss i en checkbox i ett formulär. Krysset står inte för någon slags sparad information förrutom just "krysset" som sedan skall kryssas i (eller inte) när formuläret visas igen, så det kommer aldrig behövas någon utskrift där innebörden av krysset redovisas. Kanske är det någon som är intresserad (eller någon som upptäcker att jag skapat en säkerhetsrisk, det vore just lyckat..) jag hade i alla fall problem med att hitta nåt på nätet som utför det jag ville. Här är koden: <input name="Fältnamn" type="checkbox"<? If($data['Fältnamn']=="on"){echo" checked";}?>> Kanske är det förvirrande för servern att det inte finns något "else"-alternativ? Men det verkar fungera finfint. |
Citat:
Nu blir jag förvirrad. När jag använder IE skickar den inte off om den inte är ikryssad, den skickar nämligen ingenting då. En såpass vanlig sak som checkboxar borde väl vara densamma för alla webbläsare tycker man. vilka skickar "off"? <!--QuoteBegin--Trinity Kanske är det förvirrande för servern att det inte finns något "else"-alternativ? Men det verkar fungera finfint.[/quote] Nej du behöver absolut inte något else alternativ. Citat:
|
Hmm... och jag som kände mig så stolt =)
Näe, jag har inte mycket till basic kunskap i php, men det kommer, det kommer, det fungerar ju ruskigt bra och fint, varför har jag inte testat php tidigare? Jag kikade efter vad som fanns lagrat i tabellen i SQL efter att ha knappat lite på kryssrutorna i några olika konstellationer (PC xp med IE6 samt 98 med IE6 och Netscape 6 samt Mac med explorer och Safari i OSX) och kunde inte finna några "off"alls. Än en gång, Tack! |
Citat:
|
Eftersom det verkar vara rätt många som tittar förbi här just nu, så passar jag helt enkelt på att slänga ut en ny fråga.
Jag blev så glad när jag såg i phpMyAdmin att man kunde exportera sin tabellstruktur, passar ju mig utmärkt eftersom jag inte har kört direkt på den slutliga servern under arbetets gång. Men hur Importerar jag strukturen till den slutliga SQL-basen då? Hittar bara import för data men det är ju mindre viktigt i mitt fall... jag skulle ju vara glad om jag slapp skriva in alla kolumner igen, det går iofs ganska smidigt med phpMyAdmin, men det är ju ett ypperligt tillfälle att peta in ett eller annat stavfel, det rör sig om kanske två hundra kolumner totalt, så det är svårt att hålla koncentrationen på topp hela tiden juh... |
Det ska väl finnas ett formulär man kan posta sql-filerna med i phpMyAdmin? Beroende på inställningarna i PHP och webbservern så klarar den max 2-8MB normalt så det är bara smådatabaser. Jag skrev ett PHP-script härom dagen som importerade en stor sql-fil (130MB eller nåt sånt) i ruskig fart. Den som behöver kan ju skicka ett e-post. Du kan annars köra SQL-kod lite var stanns i phpMyAdmin. Finns ju textareas överallt känns det som där du bara kan göra copy+paste till.
|
Alla tider är GMT +2. Klockan är nu 23:41. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson