CSS-värden baserat på formulär

Permalänk
Medlem

CSS-värden baserat på formulär

Hej!

Jag vill ha ett formulär vars värden i fälten bestämmer stylesheet.
Filen innehållandes stylesheet ska också länkas till externt.

<FORM action="file.php" method="post"> <P> Bakgrundsfärg: <INPUT type="text" name="bgcolor"><BR> <input type="submit" value="Submit" /> </P> </FORM>

Så skriver jag #000000 i fältet ska detta komma till en extern fil och sedan användas i stylesheet.
Jag vet inte hur jag ska göra detta.

body { background-color: <?php $_REQUEST["bgcolor"]?>; }

Något sådant kanske?

Tacksam för svar!

Permalänk
Medlem
Skrivet av etz:

Hej! Du skulle kunna. ->

<html> <head> </head> <body <?php if(isset($_POST['bgcolor'])) { ?> bgcolor="<?php echo $_POST['bgcolor']; } ?>"> <FORM action="file.php" method="post"> <P> Bakgrundsfärg: <INPUT type="text" name="bgcolor"><BR> <input type="submit" value="Submit" /> </P> </FORM> </body> </html>

Fult med snabb lösning

Visa signatur

citera gärna så jag hittar tillbaka!

Permalänk
Medlem

Så vem som helst ska kunna ändra din sidas bakgrundsfärg? Eller ska det vara ett individuellt val?
Om individuellt så skulle du kunna använda en cookie alt. en session. Ska den ändras globalt så är nog enklaste sättet att ha ett extra stylesheet som ditt HTML-dokument laddar, och när någon ändrar färgen skrivs den extra stylesheet-filen över med den nya färgen.

Visa signatur

Citera eller nämn gärna mig (@ToJa92) om du svarar på något jag skrivit.
Uppskattar du eller blir hjälpt av ett inlägg jag skrivit är jag tacksam om du gillar det.

Permalänk
Medlem
Skrivet av Gardart:

Hej! Du skulle kunna. ->

<html> <head> </head> <body <?php if(isset($_POST['bgcolor'])) { ?> bgcolor="<?php echo $_POST['bgcolor']; } ?>"> <FORM action="file.php" method="post"> <P> Bakgrundsfärg: <INPUT type="text" name="bgcolor"><BR> <input type="submit" value="Submit" /> </P> </FORM> </body> </html>

Fult med snabb lösning

Fast nu länkar vi väl inte till en extern stylesheetfil? Å andra sidan skulle väl denna kod implementerad i en extern fil, hur skulle det bli då?

Skrivet av ToJa92:

Så vem som helst ska kunna ändra din sidas bakgrundsfärg? Eller ska det vara ett individuellt val?
Om individuellt så skulle du kunna använda en cookie alt. en session. Ska den ändras globalt så är nog enklaste sättet att ha ett extra stylesheet som ditt HTML-dokument laddar, och när någon ändrar färgen skrivs den extra stylesheet-filen över med den nya färgen.

Den fetmarkerade meningen förstår jag inte riktigt. Har du exempel på kod eller dylikt?
I ärlighetens namn så är denna kod jag försöker producera en uppgift för skolan (pluggar Civilingenjör @ KTH) och vi har inte kommit till cookies & sessioner än, så om det är möjligt att undvika uppskattas det (:

Permalänk
Medlem

<link href="bgcolor.css" rel="stylesheet" type="text/css">

Sedan så har du en form som du tänkt dig, sedan med PHP så får du skriva ut en fil som heter bgcolor.css så här:
body {
background-color: #<textfältets värde>;
}

PHP koden borde inte ta mer än två minuter att skriva, och någonting måste du väll lära dig

Visa signatur

Citera eller nämn gärna mig (@ToJa92) om du svarar på något jag skrivit.
Uppskattar du eller blir hjälpt av ett inlägg jag skrivit är jag tacksam om du gillar det.

Permalänk
Medlem
Skrivet av ToJa92:

<link href="bgcolor.css" rel="stylesheet" type="text/css">

Sedan så har du en form som du tänkt dig, sedan med PHP så får du skriva ut en fil som heter bgcolor.css så här:
body {
background-color: #<textfältets värde>;
}

PHP koden borde inte ta mer än två minuter att skriva, och någonting måste du väll lära dig

Men då måste jag ju använda PHP i bgcolor.css.. Det går väl inte?

Permalänk
Medlem
Skrivet av etz:

Men då måste jag ju använda PHP i bgcolor.css.. Det går väl inte?

Nej, PHP-skriptet kommer att skapa CSS-koden som ändrar bakgrundsfärgen. PHP ska då skriva den genererade CSS-koden till filen. Bakgrundsfärgen hämtar du från formuläret.

Visa signatur

Citera eller nämn gärna mig (@ToJa92) om du svarar på något jag skrivit.
Uppskattar du eller blir hjälpt av ett inlägg jag skrivit är jag tacksam om du gillar det.

Permalänk
Testpilot

Det går utmärkt att skapa en dynamisk CSS-fil som man har PHP-kod i, det låter väldigt onödigt att låta en PHP-fil skriva till en CSS-fil.

Det enklaste sättet är att helt enkelt döpa om css-filen till .php istället och ändra Content-type på PHP-filen till "text/css". Här finns en enkel guide: http://www.barelyfitz.com/projects/csscolor/

Vill man att sin dynamiska CSS-fil fortfarande ska heta .css måste man tala om för sin webserver att även .css-filer ska köras genom PHP-tolken, det är lite pilligare och ger inget annat resultat än att man får "rätt" filnamn. Information för Apache: http://serverfault.com/questions/348439/how-to-fix-apache-con...

Visa signatur

Kolla gärna in min RGB-LED-ljusstake i galleriet
[Gigabyte GA-Z97MX-Gaming 5][Intel Core i5 4690K][Corsair XMS3 16GB][Asus GeForce RTX 2060 Super Dual Evo OC]