PHP variable als Value für input Feld?
Hallo Leute, ich bin noch ein blutiger PHP einsteiger und wollte gerade probieren ein 2-Dimensionales Array auszugeben... nur habe ich gerade das problem das die eingabe akzeptiert und in eine variable eingelesen wird aber ich diese variable nicht im html xode verwenden kann? Weiß jemand wie dies funktioniert? Bzw. Gibt es eine Methode mit welcher man wie mit .innerHTML mehr am html code verändern kann als ein paar variablen? Danke für eure Antworten LG Julian
2 Antworten
Sorry, aber deine Frage ist nicht sehr explizit.
Mit ".innerHTML" meinst du wahrscheinlich Javascript? Nun ist PHP Serverseitig und nicht Clientseitig. Daher wirst du auch nach dem Rendern der Website keine weiteren Änderungen mehr mit purem PHP einarbeiten können. Beschäftige dich mal mit AJAX. Da kann zB php die serverseitige Antwort geben.
Ein Array kannst du übrigens wie folgt ausgeben:
<?php
print_r($array);
?>
Ich weiß nicht, ob ich die Frage richtig verstanden hab, aber wenn es einfach nur darum geht, eine PHP-Variable innerhalb eines HTML Konstrukts auszugeben, das ist kein Problem. Einfach im HTML-Code an der entsprechenden Stelle ein PHP Tag aufmachen und die Variable per echo ausgeben:
<html>
<?php
$var = "Hallo Welt";
?>
<form>
<input type="text" name="eingabe" value="<?php echo $var; ?>">
</form>
</html>
Bitte mach das besser so:
<input type="text" name="eingabe" value="<?php echo htmlspecialchars($var); ?>">
Weil was würde denn passieren, wenn in $var ein Anführungszeichen " steht? Genau, das würde den HTML-Code kaputt machen. htmlspecialchars() wandelt einige Sonderzeichen in sogenannte HTML-Entities um, z. B. in "
Insbesondere darfst du NIEMALS(!!!) Benutzereingaben (also was der Besucher der Website in ein Eingabefelds eingegeben hat) direkt mit echo ausgeben. Immer htmlspecialchars benutzen! Sonst öffnest du Tür und Tor für Angriffe.
Doku dazu: http://php.net/manual/de/function.htmlspecialchars.php
Ok danke das hat mein problem gelöst, noch einen schönen Abend
Abgesehen davon, dass in Zeile 10 das Semikolon weg muss und es im form Tag method heißen muss, ist der Code so korrekt und funktionsfähig. Da du die beiden Variablen per $_GET befüllst, musst du die Werte über die URL mitgeben:
http://127.0.0.1/gnah.php?InputField1=hallo&InputField2=welt
Auf diese Weise erscheint im blauen Feld "hallo" und im grünen "welt".
https://pastebin.com/cSpgC2qF nochmals danke für eure geduld mit mir
nein es wird nicht mal text erkannt... wie könnt ihr code verschicken?
Du musst den Code innerhalb des Quelltext Tags einfügen. Dazu hier im Editor auf ... klicken und dann auf </>
ok der code kann anscheinend nicht abgeschickt werden da irgedein formatierungsproblem seitens gutefragen.net vorliegt... hoffe in jetzt funktionierts...
Wenns hier nicht klappt, dann vielleicht auf https://pastebin.com/ ausweichen
danke funktioniert allerdings habe ich nun ein weiteres problem und zwar das das ich nur jeweils ein feld befüllen kann... das andere resetet sich automatisch und ist anscheinend undefiniert... weißt du wie man das reparieren kann? Hier ist der Code:
- Der Code fehlt.
- Du drückst dich weder hier noch in deiner Fragestellung deutlich aus, unter anderem ist dies dadurch geschuldet, dass du weder auf einen guten Ausdruck noch eine ordentliche Rechtschreibung achtest. Ändere das bitte, wenn du weiter Hilfe bekommen möchtest.
Geht bei mehreren Eingabefeldern genauso:
<html>
<?php
$var1 = "Hallo Welt";
$var2 = "foobar";
?>
<form>
<input type="text" name="eingabe1" value="<?php echo $var1; ?>"><br>
<input type="text" name="eingabe2" value="<?php echo $var2; ?>">
</form>
</html>
ahh ok ich schreibe am handy es wekches diese funktion noch nicht hat