Går det att få en checkbox att skicka värdena "y" när den är kryssad och "" (tomt) när den inte är ikryssad i ett formulär (form-tag)?
Just nu har jag en input-tag där jag fyller i endera av ovanstående värden men tänkte att det vore snyggare att ha en checkbox som gör precis samma sak.
Så när den inte är ikryssad, skickas ett tomt värde antar jag. Ska testa.
Om jag utveckar frågan; att värdet ska vara N när den är avkryssad, måste man då lösa det genom javascript att värdet förändras? Eller finns det något inbyggt sätt?
Så kommer variabeln $checkbox ha värdet "Y" om man kryssade i den, eller "N" om man inte gjorde det. Jag brukar dock använda mig av 1/2 istället för N/Y.
Men javascript kan du kolla värdet med t.ex. document.forms[0].chkbox.checked som är true/false beroende på om den är ibockad eller ej.
Så när den inte är ikryssad, skickas ett tomt värde antar jag.
Nej - är kryssrutan inte kryssad skickas inget värde alls ! (din 'chkbox' förekommer överhuvudtaget inte i $_POST i det fallet - det är det MickeA:s kod kollar ;) )
Man kan alltså tyvärr inte sätta ett värde på en okryssad checkbox med Javascript i webbläsaren, och förvänta sig att det värdet dyker upp på serversidan automatiskt...
Man kan alltså tyvärr inte sätta ett värde på en okryssad checkbox med Javascript i webbläsaren, och förvänta sig att det värdet dyker upp på serversidan automatiskt...
Nja... Om man verkligen "vill" så kan man använda ett hidden-fält och lagra N eller Y i med JS, beroende på vad checkboxen har för värde. Men det finns absolut ingen anledning att göra på det viset.
Nja... Om man verkligen "vill" så kan man använda ett hidden-fält och lagra N eller Y i med JS, beroende på vad checkboxen har för värde. Men det finns absolut ingen anledning att göra på det viset.
jarvklo skrev:
Man kan alltså tyvärr inte sätta ett värde på en okryssad checkbox med Javascript i webbläsaren, och förvänta sig att det värdet dyker upp på serversidan automatiskt...
Som sagt - man kan alltså inte bara sätta ett värde (t.ex. värdet "N") i en okryssad kryssruta med Javascript och förvänta sig att det automatiskt överförs till serversidan :OO
Det ser ut att luta mot nitros lösning. Att en tom checkbox inte skickar något är kritiskt.
Just nu har jag ett synligt fält där värdet i fältet kommer från servern med hjälp av perl.
Så värdet printas ut av perl och då får jag ett fält där det står "j" eller så är den tom. Fast "n" godtas också istället för tomt. Kanske förändras vår situation och checkboxen kan skicka ett värde? Denna lösning kräver ju fortfarande JS som måste förändra värdet vid check/uncheck.
Om jag utgår från nitros lösning så döljer jag detta fält; vid uppladdning så skapas en checkbox baserad på fältets värde. Omvänt så påverkar checkboxen det dolda fältet och när jag sparar så funkar det som förr, bara det att det ser snyggare ut.
Då är det oncheck=this.value och onuncheck=this.value som gäller?