PHP Funktionsaufruf über echo einbinden

Schnipp

Lt. Commander
Registriert
Feb. 2004
Beiträge
1.141
Hallo,

ich versuche mal mein Problem einigermaßen verständlich zu schildern.

PHP:
echo "<button onClick='$db->function(var1, var2);'>Text</button>";

Ich möchte einem Button mit onClick eine Funktion zuordnen. Die Variablen für den Aufruf der Funktion trägt er mir sauber ein, aber auch nur die. Wenn ich also in der Fehlerkonsole schaue, dann ruft er folgendes auf:

HTML:
<button onClick='(3, 5);'>text</button>

Ich schaffe es nicht ihm den Funktionaufruf an sich im echo zu übergeben. Wie kann ich das realisieren?

Gruß Schnipp
 
Erklär mal was du erwartest, was im ausgegebenen HTML-Code stehen soll. Bin etwas unschlüssig was du erreichen willst.
 
a) Mit onclick kannst du höchstens Javascript Funktionen aufrufen, ich denke mal nicht dass du ein Javascript Objekt mit Dollarzeichen davor hast?
b) Logo geht das nicht. echo "$x" gibt den Inhalt der Variable $x aus, echo '$x' hingegen $x als String. Du machst echo "$db->function(var1, var2)", deshalb wird das quasi schon beim echo ausgewertet und so komisch dargestellt. Wenn du es so ausgeben willst wie es da steht, musst du machen: echo '<button onClick="$db->function(var1, var2);">Text</button>';

PS: wenns nicht klappt poste mal etwas mehr Code, aus dem Schnippsel ist nicht so richtig ersichtlich was genau du da versuchst :D
 
Ziel ist folgendes: ich gebe Daten aus einer Datenbank via PHP-While Schleife tabellarisch aus. In jeder Zeile gibt es dann einen Button, der auf Klick gewisse Infos zu diesem Datensatz in einer anderen Tabelle speichert.

In diesem Fall wird mir z.B. eine List mit diversen Ereignissen aufgelistet und durch einen Klick auf den Button "Zusagen" in der jeweiligen Zeile wird ein Datensatz in einer anderen Tabelle eingetragen (eine Art Gästeliste).

Ich hatte es mal anders versucht (so wie mambokurt es aufgeführt hat). Dann führte ein Klick auf irgendeinen Button in der Liste allerdings dazu, dass zu jedem Eintrag in der Tabelle ein Wert in die Zieltabelle geschrieben wurde.
 
Schnipp schrieb:
Ich schaffe es nicht ihm den Funktionaufruf an sich im echo zu übergeben. Wie kann ich das realisieren?
Musst du hier nicht einfach noch die Funktion dazuschreiben, die aufgerufen werden soll? also z.B.:
Code:
echo "<button onClick=meine_funktion'$db->function(var1, var2);'>Text</button>";
 
Zuletzt bearbeitet:
Hancock schrieb:
Ich hoffe, dir ist klar​, dass man in HTML keine PHP-Funktionen aufrufen kann.
Stimmt bedingt, die Hyper Text Markup Language kann zwar von Haus aus keinen Hypertext Preprocessor Code ausführen, aber durch das Hinzufügen des PHP-Handlers für html Dateien gelingt auch das. Geht in Apache2 z.B. so:

AddType application/x-httpd-php .php .htm .html
 
Ok, dann sage ich einfach mal, was am Ende rauskommen soll:

eine tabellarische Auflistung von Datensätzen, am Ende jeder Zeile ein Button zum Anklicken.
Durch Klick auf den Link wird meine user_id und die id des Datensatzes in einer Tabelle gespeichert.
Bonus wäre es, wenn die Zeile nach dem Klick auch noch die Hintergrundfarbe ändern würde oder wenn der Button mit einem anderen Symbol (grüner Haken) getauscht würde.

Bin für jede Lösung offen :cool_alt:
 
Schnipp schrieb:
Durch Klick auf den Link wird meine user_id und die id des Datensatzes in einer Tabelle gespeichert.
Bonus wäre es, wenn die Zeile nach dem Klick auch noch die Hintergrundfarbe ändern würde oder wenn der Button mit einem anderen Symbol (grüner Haken) getauscht würde.

Bin für jede Lösung offen :cool_alt:

Na Stino wäre da eigentlich ein <form> um die Tabelle zu setzen, dann gibst du deinem Button den type="submit" und als value deine zwei Werte mit (vlue="X_Y"), nimmst in PHP die Post Variable am Unterstrich auseinander und fertig. Oder du machst halt einen Ajaxrequest draus.

@TheLastHotfix: aha, und der Browser führt dann von magischer Hand PHP aus oder wie? AFAIK ist AddType application/x-httpd-php einfach nur da, um HTML Dateien wie PHP Dateien zu behandeln, also durch den Interpreter zu jagen vorm ausliefern. Deswegen kann man aber noch lange keine PHP Funktion mit einem onclick auslösen, das wäre ja total fatal. Dann könnte jeder Honk im Quelltext jede Funktion einfügen und auslösen :freak:
 
Manchmal kann es so einfach sein, danke!
 
Zurück
Oben