• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

PHP-Funktion bei Buttonklick ausführen?

Werbung:
Du kannst einen Link mit CSS zu einem Button formatieren und auf eine PHP-Datei (mit der besagten Funktion) verweisen.
 
Werbung:
In PHP gibt es keine Buttons. Von was sprichst du?
Ich glaube er meint, dass wenn ein User auf einen Button klickt eine PHP - Funktion aktiviert wird.
Wenn mich nicht alles täuscht, sollte das mittels AJAX gehen.
Desweiteren kommt es darauf an WAS für eine PHP - Funktion ausgeführt werden soll.
 
Ich glaube er meint, dass wenn ein User auf einen Button klickt eine PHP - Funktion aktiviert wird.
Wenn er das meint, ist das Unsinn. PHP läuft i.d.R. auf einem Server und weiß nichts von Buttons.

Ein Button - also vermutlich ein Formularelement in einer HTML Seite - kann niemals eine PHP Funktion aufrufen. Das wovon ihr sprecht ist ein ganz stinknormaler HTTP Request, der ausgeführt werden kann entweder über ein Formular oder ein Link, aber auch über ein JS oder wenn der User eine URL in den Browser eingibt - aber in keinem dieser Fälle wird eine PHP Funktion aufgerufen!
 
tut euch mal den gefallen und prüft mal wofür

1. HTML
2. JS
3. PHP

ist, und beschreibt genau die unterschiede.
Ihr werdet feststellen, dass die sprachen nichts, aber auch garnichts miteinander zutun haben.

Daraufhin solltet ihr euch mal

4. HTTP

angucken, und werdet dann merken, was Webseiten können und was nicht, solltet ihr dann noch lust haben googlet mal nach

5. XMLHttpRequest
 
Werbung:
Mit JS sollte es doch gehen?

window.open on click und das Fenster wieder schließen.

window.open
PHP Datei wird geöffnet.
Darin die letzte Zeile: window.close

Oder?

Ich habe es so in einem Script von mir.
 
Werbung:
Aber doch eine Datei, in der die Funktion drin ist?
Nein, nur einen HTTP Request. Dateien gibt es nicht in diesem Kontext. Der Request geht an den Server, dieser ruft in dem Fall (weil er so konfiguriert ist) ein PHP Skript auf und übergibt dabei die übermittelten Parameter. Das Skript gibt dann u.U. auf STDOUT etwas zurück, der server sammelt das und baut dann den Response damit zusammen. Es besteht also keine direkte Verbindung zwischen dem was der Browser macht und einem wie auch immer gearteten Skript auf dem Server.
 
Wenn du das meinst, was Mad Dog sagt, dann kannst du den Button in ein Formular integrieren und dem Formular eine type=hidden wert zulegen. Übrigens... der wert, den das hidden element versentdet steht im value.
Wenn der User dann auf den von dir erstellten und hoffentlich mit css Formatierten Button klickt (norm-buttons find ich nich wirklich hübsch) dann wird der wert, den du dem hidden element zugewiesen hast, an die datei geschickt, zu der du den wert senden möchtest.
Jetzt kannst du der Datei sagen, das wenn der Wert des Buttons an diese Datei geschickt wird, eine bestimmte PHP-funktion ausgeführt werden soll... einfach nur eine einfache if- else abfrage mit formular^^.

Hoffe das war das was du wissen wolltest ;)
 
Werbung:
Quic und very dirty und ungetestet klapt das Ausführen einer php Funktion per Button Klick über Java-Script aber schon..

PHP:
<?PHP

function php_funktion_do()
{
    echo "<br><br><br>funktion aufgerufen..<br><br><br>";
}
?>

    <script type="text/javascript">
    function fuehre_php_funk_aus()
    {
        document.write("<?PHP php_funktion_do();?>");
    }
    </script>


<input type="button" value="klick" onclick="fuehre_php_funk_aus();">
fragt sich nur wozu?
 
vlt will er ein ACP coden und damit irgendwelche news in eine datenbank eintragen ohne seiten reload?
keine ahnung wozu er das braucht, er hat ja nur gefragt ob es moeglich ist.
 
Quic und very dirty und ungetestet klapt das Ausführen einer php Funktion per Button Klick über Java-Script aber schon..

PHP:
<?PHP

function php_funktion_do()
{
    echo "<br><br><br>funktion aufgerufen..<br><br><br>";
}
?>

    <script type="text/javascript">
    function fuehre_php_funk_aus()
    {
        document.write("<?PHP php_funktion_do();?>");
    }
    </script>


<input type="button" value="klick" onclick="fuehre_php_funk_aus();">
fragt sich nur wozu?

im leben funktioniert das nicht, das php skript wird vorab geparst.
 
Werbung:
nichts, was du nicht mal eben hättest probieren können. bei mir klappts schon, habe es eben ausprobiert.
es sollte klappen, weil es eben selbst ein php script ist, die funktion vorher geparsed wird beim klick eine bereits geparse'te funktion abgearbeitet wird. copy/paste sollte dir das ergebnis anzeigen. allerdings kommt das ganze einem reload gleich, daher meine frage wozu?
 
es sollte klappen, weil es eben selbst ein php script ist, die funktion vorher geparsed wird beim klick eine bereits geparse'te funktion abgearbeitet wird.

wird die seite komplett geloadet wenn man die php mittels ajax ausfuehrt oder ist es irgendwie moeglich die php funktion im hintergrund laufen zu lassen, sodass nur eine teil veraendert wird? (z.b. irgendeine mittelung von wegen eintrag erfolgreich eingetragen oder so)
 
das ist nicht so einfach, manche eigenschaften gehen bei js verloren, nur das, was an php-code vorher geparsed wurde, wird auch ausgeführt. file-funktionen oder datenbank verbindungen müsste man cachen, wenn php nicht entsprechend konfiguriert ist oder entsprechend programmieren.

php im hintergrund ist "sinnlos" da das eine riesige verschwendung an ressourcen ist. besser wäre, erst mal zu definieren, was gebraucht wird. in diesem fall würde ich sagen, dass man IMMER eine bessere lösung finden kann als php-funktionen mit js zu starten.

besser formuliert, die lösung oben ist immer eine krüppel lösung und es gibt sicher bessere alternativen.
 
Zuletzt bearbeitet von einem Moderator:
Werbung:
sysops Beispiel ist im Grunde eine JavaScript-Funktion, die serverseitig dynamisch erstellt wird. Wenn die Seite beim Client ankommt, wurde der PHP-Code bereits ausgeführt und das Resultat ist eine ganz normale HTML-Seite mit normalen JS-Funktionen im Quellcode. Da passiert clientseitig bzw. nach dem Ausliefern nichts mehr mit PHP.

Die Alternative dazu sind Ajax-Calls, die serverseitige Skripte auslösen und deren Rückgabe wieder an das in der Seite laufende JavaScript liefern. Die hat Mad Dog in #4 bereits erwähnt.

Worüber reden wir hier eigentlich genau? ;)
 
Zurück
Oben