2 Submit-Buttons auswerten ... wie

wham1010
Hallo!

Wieder mal ein problem verwirrt Und zwar folgendes:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:

<?php
  session_register('User''password');
  $User $_POST['User'];
  $password $_POST['password'];
?>

<form action="index.php" method=post>
   <input type="text" name="User" size=25 maxlength=16>
   <input type="password" name="password" size=25 maxlength=16>
   <input type="submit" name="button" value="Daten erfassen">
   <input type="submit" name="button" value="Daten ansehen">
</form>


Wie kann ich nun den Wert "form action" so ändern, das, je nachdem ob value='Daten erfassen' oder value='Daten ansehen' ist, ich auf eine andere Seite weitergelange (also entweder auf index1.php oder auf index2.php)? Wenn möglich, dass das noch auf dieser Seite entschieden und ausgewertet wird (habs zwar schon hinbekommen, das ich den ausgewerteten Wert auf index.php zu sehen bekomme, aber das bringt mir ja wieder nix, weil ich auf dieser seite ja dann wieder variablenabhängig auf eine von den 2 seiten hinmöchte (index1. php bzw index2.php)).

hoffe, ihr könnt mir helfen, danke!
DerDu
gib den buttons doch unterschiedliche namen, und je nachdem welcher mit übergeben wird entscheideste dann... glaub ich

wenn dus auf der selben seite auswerten willst, mach bei action einfach $PHP_SELF rein und mach ne function die prüft, was alles so übergeben wurde, und dann je nachdem reagiert
max77
Welche Seite aufgerufen wird steht in <form> unter "action". Die gibt es pro Fomular nur einmal, also wird auch, egal welcher Button gedrückt wird, die gleiche Seite aufgerufen.

Ich würde sowieso die gleiche Seite aufrufen, und abhängig vom gedrückten Button unterschiedliche Dateien inkluden (das ist aber nur meine Meinung).

Auf der gleichen Seite auswerten (also bevor eine neue Anfrage gesendet wird) geht nicht. Es muß also dann auf jeden Fall eine Seite zwischendurch geladen werden, die auswertet und entsprechend (automatisch) weiter leitet.
IMHO aber eine ziemlich unsaubere Lösung...

Gruß
Dirk
wham1010
ok. danke vorerst einmal - hab es nun soweit, das ich eine 2. Seite aufrufe und die variablen übergeben habe (also zB var=1 bzw var=2) - hast du vielleicht einen kleinen tipp für mich, wie das mit dem automatischen weiterleiten nun funktioniert? wenn ich das noch auf die reihe bekomme, sollt es theoretisch klappen!!
DerDu
schreib am schluss in deine seite einfach
<SCRIPT>document.location.href='seitesowieso.php';</SCRIPT>
rein smile


@max77

Zitat:
Auf der gleichen Seite auswerten (also bevor eine neue Anfrage gesendet wird) geht nicht.


geht sehr wohl, wenn man eine entsprechend ausgelegte function hat Freude

allerdings geb ich dir recht, sie müsste neu geladen werden, aber das passiert beim submit auf $PHP_SELF ja sowieso
max77
@DerDu

Auf der gleichen Seite auswerten geht, das ist richtig.
Allerdings kann man dennoch nur auswerten, wenn die Seite neu geladen wird (die Seite kann sich dazu natürlich auch selbst aufrufen). Könnte höchstens mit JavaScript gehen, aber da kenn ich mich nicht so wirklich aus...

Sorry, wenn das etwas mißverständlich war :-(

Gruß
Dirk
wham1010
hab jetzt ein wenig herumexperimentiert, sowohl mit

<SCRIPT>document.location.href='seitesowieso.php';</SCRIPT>

als auch

echo "<meta http-equiv='refresh' content='0; URL=Ausgabe.php'>

im <head>-Teil.
Funktioniert jetzt zwar mit der Weiterleitung, ABER: Kann es sein, das dadurch meine Session-Variablen gelöscht werden? Hab sie von der ersten Seite mit $_POST an meine Weiterleitungsseite geschickt, dort auch mit $_REQUEST erhalten und verarbeiten können, aber auf der 3. Seite gibts die nimmer :-(


(und ich dachte, wenn das mitn weiterleiten funktioniert, sei das problem gelöst *gg*)
DerDu
geschockt warum postest du die SessionVars durch die gegend? großes Grinsen sinn und zweck isses doch das die, solange der Browser offen is, auf jeder seite eingelesen werden können.. du musst nur auf jeder oben ein session_start(); haben.. dann stehn die doch in $_SESSION drin .. oder?
max77
@wham1010:

Eben! GET, POST und REQUEST werden ja mit dem Aufruf übergeben und sind nach einem weiteren Aufruf (in dem Fall die Weiterleitung) nicht mehr da.
In dem Fall müßte man auf der zweiten Seite diese erst mal in SESSION-Variablen übertragen und kann dann auch später noch damit arbeiten.

Ich würde aber immer noch die Variante, daß man in der zweiten Seite über include oder request verschiedenen Seiten inkludiert, und nicht noch eine dritte Seite aufruft *g*

Gruß
Dirk
wham1010
vielen Dank! jetzt funktionierts endlich!!!