# formular action ruft function() auf



## zuckerbrini (28. Januar 2009)

Hi!

Ist es möglich das ich bei drücken auf einen Button eine function aufrufe?
Ich möchte gerne das dies alles in einer Datei ist.
Um verständlicher zu machten der ungefähre Aufbau wie ich ihn gerne hätte:

```
<?php
echo "<form action='bla()'>".
         ........
        "</form>;

function bla(){
  //mach irgendwas

}
?>
```

Ist so etwas generell möglich? Und wenn ja wie? 
Also einfach direkt die Funktion aufrufen funktioniert nicht. 
Wär halt einfach schöner da ich sonst so viele einzelne php-Dateien ersetllen muss.

Danke schon mal für eure Hilfe!


----------



## Sven Mintel (28. Januar 2009)

Moin,

Das Drücken eines Buttons ist eine *clientseitige* Action, du kannst damit keine Funktionen in *serverseitigen* Skripten aufrufen, egal in welcher Datei sie sind.


----------



## zuckerbrini (28. Januar 2009)

Ich kann ja schreiben action='irgendwas.php' und somit wird dann das was in dieser php-Datei steht gemacht. Deshalb habe ich mir gedacht, dass es ja auch irgendwie möglich sein muss zum Beispiel die function something() in der Datei irgendwas.php aufzurufen.

Vielleicht kannst du mir ja (wenn das nicht geht wie ich möchte   ) mir einen generellen Hinweise geben.
Ich finde es eben wie gesagt unpraktisch bzw. unschön, dass ich bei einem php Programm immer soviel php Dateien haben, in denen dann aber fast nichts drinnen steht.
Wie kann ich das umgehen? Oder anderes gefragt, wie kann ich meine php-Dateien reduzieren?


----------



## FrankWST (28. Januar 2009)

Du kannst allenfalls eine JavaScript-Funktion aufrufen, Stichworte "onsubmit" oder "onklick". Diese wird dann auf dem Client ausgeführt.


----------



## Sven Mintel (28. Januar 2009)

Wenn es dir simpel darum geht, nur 1 Datei mit allem zu Haben, dann geht das schon.

Das ist dann aber kein Aufrufen einer PHP-Funktion beim Klicken, sondern ein ganz normales Senden des Formulars.

Du musst in dem Skript nur ermitteln, ob das Formular gesendet wurde, und jenachdem darauf reagieren.

Hier mal ein simples Beispiel, das Frmular wird per POST gesendet, es wird schlicht geprüft, ob der $_POST-Array leer ist. Falls nicht, wird davon ausgegangen, dass das Formular gesendet wurde.


```
<?php
function funktionaufrufenwennformulargesendet()
{
  echo 'Formular wurde gesendet';
} 

if(!empty($_POST))//Formular gesendet
  {
    funktionaufrufenwennformulargesendet();
  }
else//Formular nicht gesendet
  {
    ?>
<form method="post">
<input type="submit" name="button">
</form>
    <?php
  }
?>
```


----------

