Avatar billede nemlig Professor
03. april 2007 - 23:17 Der er 20 kommentarer og
2 løsninger

PHP i CSS-fil

Hej. Jeg har nogle style-definationer i en fil jeg kalder style.css.

Jeg vil gerne have noget PHP-kode ind i definationerne, men det virker ikke korrekt. Jeg skriver bl.a. for at hente fra MYSQL.

<?php
      $sql = "SELECT * FROM opsaetning";
    $res = database($sql);
    $row = mysql_fetch_array($res);
?>

Og i style-området:

background-color: #<?php echo $row['farve']; ?>;

Hvad gør jeg forkert??
Avatar billede roenving Novice
03. april 2007 - 23:27 #1
Kald filen for style.php, og giv den en content-header, der fortæller, at den er en type css/txt !-)
Avatar billede roenving Novice
03. april 2007 - 23:27 #2
Ups, type skal være text/css !o]
Avatar billede nemlig Professor
03. april 2007 - 23:28 #3
Jeg er ikke med på, hvad du mener med content-header. Kan du give et eksempel på kode?
Avatar billede nemlig Professor
03. april 2007 - 23:31 #4
SÅdan her:
<link rel="stylesheet" href="css/style.css" type="text/css">
Avatar billede nemlig Professor
03. april 2007 - 23:32 #5
Åh - glemte lige at rette filnavnet:
<link rel="stylesheet" href="css/style.php" type="text/css">
Avatar billede nemlig Professor
03. april 2007 - 23:38 #6
Virker ikke. Jeg kalder som ovenfor anført og skriver følgende i style.php

<?php
      $sql = "SELECT * FROM opsaetning";
    $res = database($sql);
    $row = mysql_fetch_array($res);
?>

.form {
    background-color: #$row['farve'];
}
Avatar billede roenving Novice
03. april 2007 - 23:41 #7
-- i din php-fil sætter du en content-header, f.eks.

header('Content-type: text/css');
Avatar billede roenving Novice
03. april 2007 - 23:42 #8
Avatar billede nemlig Professor
03. april 2007 - 23:49 #9
Jeg har nu prøvet med:

<?php
header('Content-type: text/css');
?>
.form {
    background-color: #eeeee6;
}

Det virker, men det er uden MYSQL.

Når så jeg indsætter MYSQL-kaldene, så virker alle de andre styles definationer heller ikke. Koden ser sådan her ud:

<?php
    header('Content-type: text/css');

    $sql = "SELECT * FROM opsaetning";
    $res = database($sql);
    $row = mysql_fetch_array($res);
?>

.form {
    background-color: #$row['farve'];
}

Har også læst lidt på php.net, men forstår ikke ret meget.
Avatar billede roenving Novice
03. april 2007 - 23:57 #10
Har du prøvet:

.form {
    background-color: #<?php print $row['farve']; ?>;
}
Avatar billede roenving Novice
03. april 2007 - 23:58 #11
Måske skal der også nogle paranteser med, så meget ved jeg ikke om php ...
Avatar billede nemlig Professor
04. april 2007 - 00:03 #12
Du går galt inden, da jeg har prøvet bare at kalde mysql uden at hente feltet! Dette her virker heller ikke - så det er ikke paranteserne.

<?php
    header('Content-type: text/css');

    $sql = "SELECT * FROM opsaetning";
    $res = database($sql);
    $row = mysql_fetch_array($res);
?>

.form {
    background-color: #eeeee6;
}
Avatar billede roenving Novice
04. april 2007 - 00:08 #13
Så får du vel en fejl ?-)
Avatar billede nemlig Professor
04. april 2007 - 00:20 #14
Ingen fejl, men style-definationerne virker ikke. Jeg har mange definationer, men viser bare den ene (form) for enkelthedens skyld.
Jeg har konstateret, at det går galt, når linjen "$res = database($sql);" indlæses.
Lad være med at bruge mere krudt på det her - jeg tror jeg finder ud af de på anden vis. Tak for hjælpen - send lige et svar.
Avatar billede roenving Novice
04. april 2007 - 00:26 #15
Har du da defineret en funktion, der hedder database ?-)
Avatar billede nemlig Professor
04. april 2007 - 06:48 #16
jo-jo. Funktionen indlæses sammen med andre funktioner i en startfil, som altid indlæses. Og startfilen indlæses før <style>kaldene.
Avatar billede jakobdo Ekspert
04. april 2007 - 07:42 #17
Prøv at gem denne fil:

<?php
header('Content-type: text/css');
//Husk at forbind til databasen.
$sql = "SELECT * FROM opsaetning LIMIT 1";
$res = database($sql);
$row = mysql_fetch_array($res);
?>
.form {
    background-color: #<?=$row['farve'];?>;
}

Og husk lige at forbind til databasen.
Gider den det korrekt output, hvis du kalder den direkte?
Avatar billede nemlig Professor
10. juni 2007 - 16:07 #18
Roenving og Jakobdo.
Jeg har ikke afsluttet denne tråd. Sender I lige et svar.
Jeg havde lavet en fejl - nu virker det med jeres forslag.
Avatar billede roenving Novice
10. juni 2007 - 16:10 #19
Velbekomme '-)
Avatar billede jakobdo Ekspert
10. juni 2007 - 19:11 #20
Svar!
Avatar billede jakobdo Ekspert
10. juni 2007 - 20:36 #21
Takker for point.
Avatar billede roenving Novice
13. juni 2007 - 01:20 #22
-- også jeg takker for point ;~}
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester