Hallo,
ich möchte, dass z.b. eine funktion ausgeführt wird, wenn man auf einen button klickt. In meinem Falle, wäre es das Speichern eines Strings in einer Datei.
ISt das möglich?
Wenn ja wie?
Admin-Formular
Vielen Dank.
Gruß
Thomas
Hallo,
ich möchte, dass z.b. eine funktion ausgeführt wird, wenn man auf einen button klickt. In meinem Falle, wäre es das Speichern eines Strings in einer Datei.
ISt das möglich?
Wenn ja wie?
Admin-Formular
Vielen Dank.
Gruß
Thomas
was soll das denn sein?
Pre tags nutzen nicht viel wenn eh keine Formatierung drin ist…
ja das geht. Aber die Datei würde auf dem Webserver gespeichert werden. Du kannst natürlich auch einen Download-Dialog erzwingen, wo Du dann diese Datei runterladen lässt…
Admin-Formular
so… was soll das denn nun sein?
Hi,
- ja das geht. Aber die Datei würde auf dem Webserver
gespeichert werden. Du kannst natürlich auch einen
Download-Dialog erzwingen, wo Du dann diese Datei runterladen
lässt…
ich möchte ein Admin-Formular erstellen, in welchem ich eine Frage für ein Rätsel eingeben kann. Diese Frage soll später in einem anderen Fenster aus der Datei ausgelesen werden und in einer Form angezeigt werden.
Der Admin soll in ein Textfeld eine Frage eingeben und diese soll dann , wenn ein Link/Button angeklickt wird, in der Datei gespeichert werden.
Meine Frage ist nun, ob ich unbedingt eine Form erstellen muss oder ob es die möglichkeit gibt, eine Funktion mittels Link oder Button aufzurufen. Habe mich zwar etwas eingearbeitet, habe aber nicht so viel Ahnung von PHP.
Admin-Formular
eventueller befehl um funktion aufzurufen
so… was soll das denn nun sein?
- wo fopen, da auch fclose
- Funktionen müssen nicht an der Stelle stehen wo sie
ausgeführt werden sollen. Deine Funktion wird aber garnicht
aufgerufen.- input type=„submit“ value=„absenden“
- form method=post action=index.php
- Ansprechen von Variablen bevorzugt mit $_GET[‚question‘]
bzw $_POST[‚question‘]- form tag ist noch offen - nach dem submit-button fehlt ein
und das ist nicht geschlossen
(">")
Gruß
Thomas
Hi!
Meine Frage ist nun, ob ich unbedingt eine Form erstellen muss
oder ob es die möglichkeit gibt, eine Funktion mittels Link
oder Button aufzurufen. Habe mich zwar etwas eingearbeitet,
habe aber nicht so viel Ahnung von PHP.
Dein Problem sind nicht mangelnde PHP-Kenntnisse, sondern das fehlende Verständnis, wie die Kommunikation zwischen dem Client (also dem Browser) und dem Server abläuft.
Der Browser nimmt über eine Art „Kommunikationszeile“ Kontakt mit dem Server auf (z.B. durch „www.test.de“ in der Adresszeile des Browsers). Auf dem Server wird das entsprechende Programm gestartet (normalerweise die Index.html oder Index.php, die u.U. mit einem weiteren Programm verlinkt ist). Ist dieses Programm ein PHP-Programm, so läuft es durch einen Interpreter, wird auf dem Server ausgeführt (evtl. mit Datei- oder Datenbankzugriffen) und erzeugt am Ende eine Datei, die aus reinem HTML besteht. Diese Datei wird an den Client zurückgeschickt und dort vom Browser in eine Anzeige umgesetzt. Und damit verabschiedet sich der Server aus der Verbindung. Klickt man nun im Browser auf einen Button, wird die im Tag „Form“ angegebene „Action“ ausgelöst, d.h. der Client nimmt erneut Kontakt mit dem Server auf, wo das gewünschte Programm gestartet und neuer HTML-Coder erzeugt und an den Client geschickt wird. Ähnliches kann man auch ohne HTML-Tag „Form“ mit „Action“ über das HTML-Tag „href“ erreichen - allerdings muß man dann die Parameter, die in der „Kommunikationszeile“ zu übergeben sind, selbst versorgen.
So weit verständlich?
Für dein Problem brauchst du keine Funktion, die auf einen Buttonklick oder Link-Klick reagiert. Der Button-Klick / Link-Klick löst einen Selbstaufruf des Programmes aus, das dir den HTML-Code für die Anzeige erzeugt. Beim ersten Aufruf bekommt das Programm auf Serverseite aber keine Parameter übergeben (logisch, weil das Eingabefeld noch gar nicht im Browser zu sehen ist). Der PHP-Code läuft auf dem Server, erzeugt den notwendigen HTML-Code und schickt ihn an den Client. Damit hat der Client jetzt einen Dialog (z.B. mit Eingabefeld und Button bzw. einer href-Zeile). Klickst du auf den Button/Link, wird das Programm auf dem Server erneut gestartet, dieses Mal aber mit Parameter. Das muß das Programm auf dem Server aber selbst feststellen. Werden Parameter übergeben, schreibt das Programm die Daten in eine Datei, erzeugt den HTML-Code und schickt diesen wieder an den Client.
Ist eigentlich wie ein Ping-Pong-Spiel.
Der Code (ungetestet!) von „Frage.php“ sähe in etwa so aus:
<?php $frage = isset($_GET["frage"]) ? $_GET["frage"] : "";Hi!
Meine Frage ist nun, ob ich unbedingt eine Form erstellen muss
oder ob es die möglichkeit gibt, eine Funktion mittels Link
oder Button aufzurufen. Habe mich zwar etwas eingearbeitet,
habe aber nicht so viel Ahnung von PHP.Dein Problem sind nicht mangelnde PHP-Kenntnisse, sondern das
fehlende Verständnis, wie die Kommunikation zwischen dem
Client (also dem Browser) und dem Server abläuft.Der Browser nimmt über eine Art „Kommunikationszeile“ Kontakt
mit dem Server auf (z.B. durch „www.test.de“ in der
Adresszeile des Browsers). Auf dem Server wird das
entsprechende Programm gestartet (normalerweise die Index.html
oder Index.php, die u.U. mit einem weiteren Programm verlinkt
ist). Ist dieses Programm ein PHP-Programm, so läuft es durch
einen Interpreter, wird auf dem Server ausgeführt (evtl. mit
Datei- oder Datenbankzugriffen) und erzeugt am Ende eine
Datei, die aus reinem HTML besteht. Diese Datei wird an den
Client zurückgeschickt und dort vom Browser in eine Anzeige
umgesetzt. Und damit verabschiedet sich der Server aus der
Verbindung. Klickt man nun im Browser auf einen Button, wird
die im Tag „Form“ angegebene „Action“ ausgelöst, d.h. der
Client nimmt erneut Kontakt mit dem Server auf, wo das
gewünschte Programm gestartet und neuer HTML-Coder erzeugt und
an den Client geschickt wird. Ähnliches kann man auch ohne
HTML-Tag „Form“ mit „Action“ über das HTML-Tag „href“
erreichen - allerdings muß man dann die Parameter, die in der
„Kommunikationszeile“ zu übergeben sind, selbst versorgen.So weit verständlich?
Ja.
Für dein Problem brauchst du keine Funktion, die auf einen
Buttonklick oder Link-Klick reagiert. Der Button-Klick /
Link-Klick löst einen Selbstaufruf des Programmes aus, das dir
den HTML-Code für die Anzeige erzeugt. Beim ersten Aufruf
bekommt das Programm auf Serverseite aber keine Parameter
übergeben (logisch, weil das Eingabefeld noch gar nicht im
Browser zu sehen ist). Der PHP-Code läuft auf dem Server,
erzeugt den notwendigen HTML-Code und schickt ihn an den
Client. Damit hat der Client jetzt einen Dialog (z.B. mit
Eingabefeld und Button bzw. einer href-Zeile). Klickst du auf
den Button/Link, wird das Programm auf dem Server erneut
gestartet, dieses Mal aber mit Parameter. Das muß das Programm
auf dem Server aber selbst feststellen. Werden Parameter
übergeben, schreibt das Programm die Daten in eine Datei,
erzeugt den HTML-Code und schickt diesen wieder an den Client.Ist eigentlich wie ein Ping-Pong-Spiel.
Der Code (ungetestet!) von „Frage.php“ sähe in etwa so aus:
<?php :
$frage = isset($\_GET["frage"]) ? $\_GET["frage"] : ""; if ($frage != "") { $datei = fopen("question.txt", "a"); if ($datei) { fwrite($datei, $frage); fclose($datei); } } echo
formular; #Was macht dieser Ausdruck? ("formular;")
?>
Statt des Submit-Buttons mit der Action="Frage.php" ginge auch
ein href, das allerdings den Programmaufruf mit
selbstgesetzten Parametern durchführen muss, etwa so:
Nächste Frage
Wichtig ist der Teil nach dem Fragezeichen, da hier die Werte
für das isset und das $_GET gesetzt sein müssen.
Vielen Dank für die Erklärung!
Grüße
Heinrich
Grüße
Thomas
Hi!
echo $wert1";
echo " ";
echo " $wert2 ";
echo " ";
echo " $wert3 ";
//PHP-Block beenden
?>
b)
Der PHP-Programmblock wird für jeden HTML-Befehl unterbrochen und danach wieder neu eröffnet
Bsp:
<?php //hier beginnt der PHP-BlockDas ist für beide Fälle ausgesprochen umständlich. ALso haben sich die PHP-Entwickler etwas einfallen lassen und die sogenannte „Heredoc“-Schreibweise eingeführt. Durch den „echo“-Befehl, gefolgt von "$wert1
$wert2
$wert3
ausgabe;
//PHP-Block beenden
?>
Mit „ausgabe;“ wird der „Heredoc“-Block beendet, danach gilt wieder reine PHP-Programmierung. Einschränkung bei der „Heredoc“-Schreibweise: es können innerhalb des „Heredoc“-Blockes keine Funktionen und keine Bedingungen („if“) ausgeführt werden.
Gerade beim Füllen von HTML-Formularen mit PHP-Variableninhalten ist die „Heredoc“-Schreibweise sehr von Vorteil.
Grüße
Heinrich
Hi,
vielen Dank für die Erklärung.
Werde es mal ausprobieren.
Thx
Gruß
Thomas