AndreasCMedlem sedan mars 20011 964 inlägg Jag har ett antal "checkboxes" på min sida som jag till varje "checkbox" angett ett unikt namn. Jag vill skicka värdet (ifylld eller inte ifylld) från varje ruta
till ett php-script som sedan lägger varje enskilt värde i en egen kolumn. Jag vill alltså spara varje värde i en egen kolumn och inte en ny rad i samma kolumn.
Jag har detta script så här långt men det fungerar inte:
$english = $_POST["english"];
$japanese = $_POST["japanese"];
$chinese = $_POST["chinese"];
$swedish = $_POST["swedish"];
$spanish = $_POST["spanish"];
$german = $_POST["german"];
$russian = $_POST["russian"];
$danish = $_POST["danish"];
$italian = $_POST["italian"];
$finnish = $_POST["finnish"];
$dutch = $_POST["dutch"];
$romanian = $_POST["romanian"];
$greek = $_POST["greek"];
$icelandic = $_POST["icelandic"];
$insert = "INSERT INTO ".TBL_PREFERENCES_TBL." (lang_english, lang_japanese, lang_chinese, lang_swedish,
lang_spanish, lang_german, lang_russian, lang_danish, lang_italian,
lang_finnish, lang_dutch, lang_romanian, lang_greek, lang_icelandic)
VALUES ('$english', '$japanese', '$chinese', '$swedish', '$spanish', '$german', '$russian', '$danish',
'$italian', '$finnish', '$dutch', '$romanian', '$greek', '$icelandic')";
mysql_query($insert);
Jag tror att detta är rätt väg men jag får det inte att lira helt och hållet. Jag vill att scriptet ska se ifall en ruta är ifylld eller inte och skicka värdet 1 eller 0 beroende på om rutan är ifylld eller inte.
Hur ska scriptet se ut? Ska jag ange något i value="" i html-koden?
metalboyMedlem sedan jan. 2005953 inlägg Om rutan inte är ifylld så kommer den inte finnas med i $_POST.
Du kan alltså använda något liknande detta:
$english = isset($_POST['english']) ? 1 : 0;
$japanese = isset($_POST['japanese']) ? 1 : 0;
// etc
AndreasCMedlem sedan mars 20011 964 inlägg Tack för svaret. Jag tror jag har testat detta förut men fick ingen ordning på det. Jag kollade runt lite på nätet och hittade till slut en lösning. Jag fick göra så att jag lade till en extra checkbox som jag döpte till samma namn som ordinarie checkbox och sätta den som hidden och value="0". Då kan jag skicka antinegn noll eller ett beroende på om rutan är ikryssad eller inte.
I PHP-koden anger jag sedan:
if($_POST['english'] == 0){
$english = 0;
}
else {
$english = 1;
}
metalboyMedlem sedan jan. 2005953 inlägg Det känns inte som en bra lösning. På vilket sätt fick du inte ordning på den metod jag visade? Posta gärna ditt försök här, så kan vi försöka guida dig rätt ;)
AndreasCMedlem sedan mars 20011 964 inlägg Vad är fel med den lösningen? Jag har sätt just denna lösning på flera forum och på flera sidor som rekomenderar just denna lösning.
Vill också poängtera att jag även vill kunna låta användaren avmarkera en ruta och då spara värdet 0 till databasen. Därför skickar jag alltid ett värde till scriptet. Med din lösning skickar man väl bara värdet 1? Vad händer om rutan inte är ifylld?
Det gör ju metalboys kod också är t o m snabbare att skriva som metalboy gör har jag för mig.
metalboyMedlem sedan jan. 2005953 inlägg Om checkboxen english inte är markerad, så får variabeln $english värdet 0 med det kodförslaget jag postade.
Det finns några skäl att inte använda den lösning du har just nu.
Om det är som du skriver just en checkbox extra du har lagt till för varje val, och som du sedan har valt att dölja med hjälp av CSS, vad händer då om en besökare som har stängt av CSS-tolkning surfar in på sidan? Jo alla dessa extra checkboxar kommer att synas och förvilla besökaren.
Dessutom blir själva HTML-koden onödigt lång, och tar därmed längre tid att ladda. Kan tyckas som en skitsak med dagens bredbandsanslutningar, men jag har för mig t.ex. Google tar hänsyn till hur lång tid sidan tar att ladda när placeringen avgörs.
Dessutom blir koden svårare att underhålla, eftersom du måste ändra/lägga till/ta bort två checkboxar för varje värde.
AndreasCMedlem sedan mars 20011 964 inlägg Har inte koden framför mig men jag tror att jag satt type="hidden" Alltså HTML, inte CSS. Men helt klart bra argument för varför jag inte ska använda det alternativ jag valt. Ska testa ditt alternativ senare ikväll. Helt klart vill man ju ha så liten kod som möjligt.
I övrigt kan jag inte förstå varför någon skulle vilja stänga av CSS-tolkning. Allt som har med layout och utseende att göra styrs ju med CSS av i stort sett varenda site på webben och om man stänger av det så kommer ju webben inte att se ut som den ska. Javascript kan jag förstå men varför stänga av CSS? Vad vinner man på det?
metalboyMedlem sedan jan. 2005953 inlägg
AndreasC skrev:
I övrigt kan jag inte förstå varför någon skulle vilja stänga av CSS-tolkning. Allt som har med layout och utseende att göra styrs ju med CSS av i stort sett varenda site på webben och om man stänger av det så kommer ju webben inte att se ut som den ska. Javascript kan jag förstå men varför stänga av CSS? Vad vinner man på det?
Ingen aning. Men sitter man med riktigt usel uppkoppling så kanske man väljer att stänga av CSS och bilder för att få så lite som möjligt att ladda. Eller så kanske man sitter med en riiiiktigt gammal browser. Hur som helst så tycker jag att man ska resonera med CSS så som man resonerar med JavaScript, man ska inte vara beroende utav det för att få fram sitt budskap.
AndreasCMedlem sedan mars 20011 964 inlägg Ja, det är ju iofs en bra tanke. Själv kan jag dock tycka att det skulle vara oerhört tråkigt att utveckla sidor om man hela tiden måste hålla sig tillbaka rent teknikmässigt för att det finns folk som inte vill använda sig av den. Speciellt inte när anleningarna är så diffusa som att man har dålig uppkoppling eller sitter med en gammal broswer. Att föra fram ett budskap handlar ju ofta om bra design också. Design och estetik bidrar väldigt mycket till att få fram ett budskap. HTML ger inte särskilt stor frihet vad gäller kreativitet och skaparanda.
AndreasCMedlem sedan mars 20011 964 inlägg Jag ändrade till din variant metalboy, och det fungerar jättebra :) Det blev ju lite mindre kod iallafall och det känns lite smidigare.
Jag tror att det fungerade första gången jag testade denna variant. Om jag minns rätt så var det nog inte den koden som strulade utan det var något fel med koden som ansluter mot databasen. Jag har för mig att det var nåt där som gjorde att det inte fungerade tidigare.
Stort tack :)