Ändern Sie hintergrund-Farbe in php mit text-Eingabe-Formular
Ich ein Programm schreiben, das ändert die Hintergrundfarbe einer Seite über ein Formular mit einem text-input-Feld. Ich versuche eine variable zuordnen, um was auch immer Wert ist geschrieben in dem text-Feld.
Der code funktioniert, wenn der input-Wert != 6
jedoch, wenn der input-Wert == 6
es funktioniert nicht. Ich denke, das problem entsteht, wenn ich versuche zuweisen der eingegebene Wert in das Textfeld $color
im activity1.php
Datei.
activity1.php
<?php
$color = "color";
if (isset ($_POST["button1"])) {
if (strlen($_POST["color"]) == 6) {
echo "<body style='background:#$color;'>";
} elseif (strlen($_POST["color"]) != 6) {
echo "Please enter a valid 6 digit hex code<body style='background: black; color: white;'><br>";
}
}
?>
pageColor.php
<body>
<form action="pageColor.php" method="post">
<?php
include "activity1.php";
?>
Please enter your color code: <input type="text" id="color" name="color" />
<input type="submit" id="button1" name="button1" />
</form>
</body>
- Zwei
body
tags auf einer Seite ist ein Fehler.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist, wie angedeutet, in diese Kommentar ist, dass Sie die Ausgabe von zwei body-tags. Dies ist kein Gültiger html-Code.
Diese Adresse, ich bevorzuge separate html-und php-code, so dass ich die html mit php, und auch eine klare Sicht auf meinen html-code.
body.html:
In den php-code, ich habe nur die Logik mit den Werten ersetzt werden, die in der html:
Ich mag mit
strtr()
zum ersetzen von Werten in meine html. es gibt andere Funktionen zu ersetzen, content in strings, wie z.B.sprintf()
, die ist leistungsfähiger und schneller, aber ein bisschen mehr einengend und kompliziertDie Werte, die in der
$data
ersetzen die Platzhalter in der Vorlage. Der {z} - Klammern sind wichtig, dastrtr()
ersetzt eine beliebige Zeichenfolge entspricht einem beliebigen Schlüssel der Arrays mit ist es Wert. Mit diesen Klammern mit dem 'z' Brief minimiert die Möglichkeiten, es ersetzt eine unerwünschte Zeichenkette.jedoch direkt Zugriff auf die Werte in Ihrem
$_POST
ist etwas gefährlich, da es keine Kontrolle darüber, was gesendet wird, auf Ihren server. Betrachten Sie zumindest mitfilter_input()
Warum nicht mit Jquery?
http://api.jquery.com/css/
Können Sie den hintergrund ändern die Farbe auf die Vorlage.
Können Sie abrufen, das input-element, indem es eine id und
Obigen Beispiel wird auch verlangt, dass Sie eine ID zuweisen die form.
Für den code;
Versuchen:
echo '<body style="background:#'.$color;.'">'';
Ersten würde ich nicht empfehlen, was Sie versuchen, denn das kann leicht sein und sollte mit Javascript gemacht werden, aber als Sie sagten, Sie sind nur zu lernen, also hier sind deine Fehler.
activity.php
pageColor.php
nachdem diese Schleife
sind Sie nicht zuweisen $Farbe den Wert für $_POST['Farbe']. so wird die variable Farbe mit dem Wert bleiben, wie die "Farbe".wenn u verwenden, im styling
"background:#color"
ist kein gültiges css.versuchen Sie, diese zu