mit PHP Eigenschaft eines DIVs ändern
Markus
- php
0 Gunnar Bittersmann
hallo zusammen,
ich möchte die breite eines divs ändern und zwar dynamisch.
kann man über php die style-angaben eines elementes ändern?
vielen dank.
Hello out there!
kann man über php die style-angaben eines elementes ändern?
Ja, natürlich.
Du weißt, was PHP tut? Oft wird es dazu benutzt, HTML-Quelltext zu generieren; CSS-Quelltext ist ebenso mäglich.
See ya up the road,
Gunnar
hi Gunnar,
in bin newbie in sachen phh.
nehmen wir an, ich habe folgendes style für ein div definiert:
#content {width:220px;}
ich möchte dies nun auf width 300px ändern.
mit javascript würde ich das so machen:
<script type="text/javascript">
<!--
document.getElementById("content".style.width = "300px";
//--></script>
wie geht das denn mit php?
Hi,
da fehlt natürlich eine klammer:
document.getElementById("content").style.width = "300px";
hi,
wie geht das denn mit php?
In dem du das Dokument neu lädst.
gruß,
wahsaga
Hi,
wie geht das denn mit php?
was Gunnar dir missverständlich unmissverständlich sagen wollte war eher folgendes: PHP=Server=du kannst alles rein schreiben, was du auch in deine HTML-Datei schreiben könntest. Was PHP nicht kann ist eine Seite zu verändern die der Browser bereits anzeigt (wie deine JavaScript-Beispiel).
Es kann allerdings ein JavaScript in die Seite schreiben was das tut.
MfG
Rouven
Hello out there!
Es kann allerdings ein JavaScript in die Seite schreiben was das tut.
Warum sollte PHP das tun? Es kann doch den berechneten Wert für die Breite in den Quelltext schreiben.
(Wie auch immer der berechnet wird. Darüber schweigt sich Markus ja aus.)
See ya up the road,
Gunnar
Hello out there!
(Wie auch immer der berechnet wird. Darüber schweigt sich Markus ja aus.)
Gunnar
hi Gunnar,
per parameterübergabe.
wenn var=1 width 220px
wenn var=2 width 300px
Hello out there!
(Wie auch immer der berechnet wird. Darüber schweigt sich Markus ja aus.)
per parameterübergabe.
wenn var=1 width 220px
wenn var=2 width 300px
Nicht dass du dein Schweigen wirklich gebrochen hättest. Wo kommt der Wert von var her? Wie wird da was übergeben?
See ya up the road,
Gunnar
hi Gunnar,
per url-übergabe.
habe d'ehre Markus
per url-übergabe.
In den <head>Bereich *nach* der Definition Deines Standard-CSS einfuegen. #deinDIv wenn ID vergeben, wenn Klasse div.deinDIV, die Benamsung muss auf alle Faelle der von Deiner Defaultbeschreibung entsprechen.
[code=PHP]
echo "<style type="text/css">";
echo "#deinDiv {width:".$_GET['breite']."px";}
echo "</style>":
[/code]
man liest sich
Wilhelm
Hallo Wilhelm.
echo "<style type="text/css">";
echo "#deinDiv {width:".$_GET['breite']."px";}
echo "</style>":
Wenn du keine Notice riskieren möchtest, besser so:
~~~php
echo '<style type="text/css">' . "\n";
echo ' #deinDiv {width:' . (isset($_GET['breite']) ? $_GET['breite'] : 200) . 'px;}' . "\n"; # 200 = Standardwert
echo '</style>' . "\n";
Einen schönen Montag noch.
Gruß, Mathias
Hi,
autsch, ungeprüfte Werte vom Nutzer direkt in die Ausgabe schreiben? GANZ BÖSE (wird eigentlich nur übertroffen von: ungeprüfte Werte vom Nutzer direkt ausführen)! Würde ich ganz stark davon abreaten, hat immer das Potential gewisse Lücken aufzureißen. So Dinge wie
adresse.php?breite=100px;background-image:url(http://12.12.23.43/diese_seite_ist_muell.jpg);border:0
Oder zum Beispiel per Adresse eine Weiterleitung in deine Seite schleusen
adresse.php?breite=</style><meta http-equiv="refresh" content="2;url=http://www.boeseseite.de">
Der Phantasie was man da böses machen kann sind quasi keine Frenzen gesetzt.
Dann setz wenigstens eine Prüfung der Angabe davor. Also entweder per regulären Ausdruck testen ob der Übergabewert erlaubt ist oder, falls es nur feste Werte sein sollen sowas wie (ungetestet, aber ich denke klar in welche Richtung es gehen soll):
$erlaubt = array(100,200,300);
if(!in_array($_GET['breite'],$erlaubt){
$breite = 100;
} else {
$breite = $_GET['breite'];
}
Marc
habe d'ehre AllesMeins
autsch, ungeprüfte Werte vom Nutzer direkt in die Ausgabe schreiben?
Jetzt sollte man doch mal die Vorschlaege einfach nur Vorschlaege sein lassen.
Das man GET-Parameter nicht ungeprueft uebernimmt setze ich generell voraus. Jetzt hier noch eine vorgefertigte, komplette Validierung der Werte einzufordern finde ich ueberzogen. Es ging primaer nur darum, wie er mit PHP bestehende Formatierungen ueberschreiben koennte, dieser Weg wurde ihm gezeigt.
Ich konzidiere Dir, dass ein Hinweis auf die Problematik angebracht gewesen waere. Aber ich gehe in meiner Unbedarftheit davon aus, dass gewisse Sicherheitsgrundlagen bzgl. Parameteruebergabe per URL bei der Verwendung jedweder Programmiersprachen gegeben sein muessen.
man liest sich
Wilhelm
Moin,
naja, ich befürchte bei jemanden der absoluter PHP-Neuling und Programmierneuling (und davon gehe ich mal aus, denn jemand mit Erfahrung hätte die Frage wohl nicht gestellt, selbst dann wenn er von einer anderen Sprache kommt) kann man das nicht voraussetzen. Deshalb nochmal meine ausfühliche Warnung, was da passieren kann. Und das sich viele Leute keine Gedanken über solche Dinge machen (Ich sag nur include.php?path=../datei.php)
Hi,
Warum sollte PHP das tun? Es kann doch den berechneten Wert für die Breite in den Quelltext schreiben.
(Wie auch immer der berechnet wird. Darüber schweigt sich Markus ja aus.)
na ja, genau, vielleicht liegt die Berechnung außerhalb der Reichweite von PHP oder basiert auf Nutzerinteraktion. Vielleicht befindet sich Markus ja in dem Glauben sämtliche Aktionen komplett durch PHP ersetzen zu können ohne sich darüber im Klaren zu sein, dass das nur über einen Reload oder Beibehalten der HTML/CSS/JavaScript-Ansätze möglich ist.
MfG
Rouven
Hello out there!
na ja, genau, vielleicht liegt die Berechnung außerhalb der Reichweite von PHP oder basiert auf Nutzerinteraktion.
Dann muss JavaScript her (wenn nicht eine neue Ressource geladen werden soll). Um dieses JavaScript in den Quelltext zu schreiben, bedarf es keines PHP.
See ya up the road,
Gunnar