Mit PHP CSS variieren

julieann

Erfahrenes Mitglied
Hey.
Auf folgender Seite soll oben die PLZ eingeben werden. JE nachdem,welche Zahl eingegeben wurde, soll rechts eine entsprechende Adresse angezeigt werden.
http://www.oecocolor.de/TEST/karte.php

Ich dachte es mir wie folgt: Das CSS kommt ausnahmsweise in den Header. Dafür wollte ich dann nach diesem VOrbild:
http://www.phpro.org/articles/Embedding-PHP-In-CSS.html
Variablen einsetzen per php. Soll heißen: ich möchte,dass php an bestimmten Stellen im CSS den Wert einer speziellen Variable einsetzt. Aber das funktioniert nicht bei mir :(
Ich habe es erstmal mit einem einfach Test versucht, bevor ich das eigtle PLZ-Problem angehe.Steht also ganz oben im CSS Teil. Es soll also einfach der Teil "none" bei Display eingesetzt werden,so dass die Testadresse erstmal nicht angezeigt wird. Kann mir jemand weiterhelfen?
 
Hi,

du kannst doch auch PHP-Scripte als CSS-Quelle benutzen:

HTML:
<html>
<head>
<title>Irgend ein Titel</title>
<link rel="stylesheet" type="text/css" href="myCssScript.php"/>
</head>
<body>

<div id="mainContent">
....
</div>
</body>
</html>

Im PHP-Script kannst du dann ganz regulär PHP-Code bauen. Diesen solltest du dann allerdings nicht mit dem Content-Type "text/html" ausliefern (was der Standard ist), sondern als "text/css".

Hier noch ein Beispiel:

http://www.barelyfitz.com/projects/csscolor/

EDIT: Sorry, genau das wird in deiner URL ja beschrieben, hab das Beispiel zu spät angeklickt. Allerdings funktioniert das hier nicht:

CSS:
#adresse1 {display: Anzeigeaus;}

Das müsste heißen:

CSS:
#adresse1 {display: none;}

Ich würde es trotzdem auslagern. Lässt sich leichter pflegen.
 
Zuletzt bearbeitet:
Ja, auslagern bevorzuge ich natürlich grundsätzlich auch. Aber meine Frage ist ja:

Wenn ich nun eine bestimmte PLZ eingebe, möchte ich, dass eine bestimmte div-ID von display: none; auf display: block; gesetzt wird. ich dachte, das wäre in diesem Fall möglich, in dem ich das per PHP ansteuere? Also, je nachdem,welcher Wert eingeben wird (und nach dem Klick auf "Suche") wird das entsprechende DIV gezeigt (auf display: block; gesetzt)?
Hat jemand da eine Idee?
 
Also, ich hatte in der Zwischenzeit folgendes überlegt:

http://www.oecocolor.de/TEST/karte.php

Ich will oben ein PHP Skript machen, wo ich an der entsprechenden Stelle im html dann eine Ausgabe mache, je nachdem,was in das PLZ-Feld eingegeben wurde. Grundsätzlich funktioniert die Ausgabe, nur sobald ich sie an eine IF Abfrage mit dem FORM hänge, klappt es nicht, also, er meldet immer was von

The requested URL /TEST/$_SERVER[SCRIPT_NAME] was not found on this server

Ich habe es nach dem ersten Beispiel hiervon gemacht:
http://www.homepage-total.de/php/schreiben_lesen_8.php?seite=7

Da ich echter Neuling in PHP bin, brauche ich eure Hilfe: Wie komme ich denn nun weiter?
 
Du könntest das so machen:
PHP:
<?php
/* myCssStyle.php */
if ( isset($_POST['plz']) && $_POST['plz'] == '12345' )
{
  echo "#addresse1 { display: block; }";
}
else
{
  echo "#addresse1 { display: none; }";
}

Zu deinem zweiten Problem:

Du hast vermutlich folgenden HTML-Code (also kein PHP-Code) in deiner karte.php eingebaut:

HTML:
<form action="$_SERVER[SCRIPT_NAME]" method="post">
<input type="text" name="plz"> 
<input type="submit" value="suchen"> <br>
</form>
Da drin ist aber PHP-Code. Du kannst es folgendermaßen machen:

PHP:
<form action="<?php echo $_SERVER[SCRIPT_NAME]; ?>" method="post">
<input type="text" name="plz"> 
<input type="submit" value="suchen"> <br>
</form>

Oder du schreibst gleich den Namen des PHP-Scripts hin:

HTML:
<form action="karte.php"  method="post">
<input type="text" name="plz"> 
<input type="submit" value="suchen"> <br>
</form>
 
Also, ich poste mal den Code von karte.php:

Code:
<!DOCTYPE
HTML
PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Oecocolor GmbH & Co KG</title>
<link rel="shortcut icon" type="image/x-icon" href="images/favi.ico">
<link rel="stylesheet" type="text/css" href="css/popupkarte.css">

<?php



if ( isset($_POST['plz']) && $_POST['plz'] == '12345' )
{
$adresse = "<h1>Titel</h1> 
Adresse<br>
neue Zeile";}
}
else ( $adresse = "";}
?>



<!--[if lt IE 7]>
<script src="http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE7.js" type="text/javascript"></script>
<![endif]-->
</head>

<body>



<div id="wrapper">
<div id="mitte"><div class="inhaltDiv">




Um die richtige Handelsvertretung zu finden,<br>
benutzen Sie bitte den PLZ-Editor: 
<form action="karte.php" method="post">
<input type="text" name="plz"> 
<input type="submit" value="suchen"> <br>
</form>


<br><br>
<div id="map">
<img src="images/Karte.jpg" alt="Karte" title="Karte" />
        <ul>
          <li id="theuss"><a href="#nogo" class="tl">Theuß</a> 
            <div class="popup"> 
              <div class="popupcontent"> 
                <h1>Bau- und Industrievertretungen</h1>
                <p>Wilfried Theuß<br>
                  Ruffiniallee 16 e<br>
                  82152 Planegg<br>
                  <br>
                  Tel. +49 (0) 89 8596643<br>
                  Fax +49 (0) 89 8599948<br>
                  Mobil +49 (0) 172 8403275 <br>
                  E-mail: <a href="mailto:wilfried.theuss@t-online.de">wilfried.theuss@t-online.de</a> 
                </p>
              </div>
            </div>
          </li>
        </ul>
</div>

</div></div>

<div id="oben"><div class="inhaltDiv">



		<div class="floatright">
		
<a class="menu2" href="home.php" title="Home">Home</a>
<a class="menu2" href="kontakt.php" title="Kontakt">Kontakt</a>
<a class="menu2" href="impressum.php" title="Impressum">Impressum</a>
<a class="menu2" href="agb.php" title="AGB">AGB</a>
</div>

	  





</div></div>

<div id="links"><div class="inhaltDiv">

<div class="flags">
<a href="home.php"><img src="images/flag1.jpg" alt="deutsch"></a>
<a href="home_en.php"><img src="images/flag2.jpg" alt="englisch"></a>
</div>

      <div class="mainpic"> 
	
  <img src="images/alternativ/ei.jpg" alt="Foto">
	  
	  
	  
	 </div>


	<ul class="menu">
<li><a href="wir.php" title="Wir über uns">Wir &uuml;ber uns</a></li>
<li><a href="produkte.php" title="Produktinfos">Produktinfos</a></li>
<li><a href="anwendung.php" title="Anwendung">Anwendung</a></li>
<li><a href="einbau.php" title="Einbau">Einbau</a></li>
<li><a href="vertrieb.php" title="Vertrieb">Vertrieb</a></li>

</ul>

<div class="tuev">
		<img src="images/tuev_holz.jpg" alt="TUEV">
		</div>



</div></div>

<div id="rechts"><div class="inhaltDiv">

<img class="floatleft" src="images/LOGO.jpg" alt="logo">


<div id="aussen">

<?=$adresse?>

	</div>
	
	
		
			
	</div>
	

</div>

<div id="unten"><div class="inhaltDiv">

<span class="big">&Ouml;cocolor</span> GmbH & Co KG, Hemkenroder Straße 14, 38162 Destedt, Tel. +49 (0)5306 / 941444, <a class="context" href="http://www.oecocolor.de" >www.oecocolor.de</a>
	


</div></div>
  </div>
</body>
</html>
 
Hallo!

PHP:
neue Zeile";}
Die Klammer ist zu viel.

Gruss Dr Dau

[edit]
Achja.....
Anstatt
PHP:
<?=$adresse?>
solltest Du lieber
PHP:
<?php echo $adresse?>
verwenden (Stichwort:short_open_tag).
[/edit]
 
Zuletzt bearbeitet:
Vielen Dank!!

Ich habe nun allerdings doch noch ein Problem :(

ICh wollte zunächst die Variable postleitzahl in eine integervariable umwandeln. Nun muss ich für verschiedene Postleitzahlbereiche einen Abgleich machen (also mit && und || ). Habe mit einem Vergleich begonnen, aber jetzt klappt wieder nix :(

Ich poste mal den php Teil:

Code:
<?php

if ( isset($_POST['postleitzahl'])  )
{
$plz= (int)$postleitzahl;


if ( $plz >= 70000 )
{
$adresse = "<h1>Titel</h1> 
Adresse<br>
neue Zeile";
}
}
else { $adresse = "";}

?>
 
Zuletzt bearbeitet:
Zurück