Hallo!
Ich habe ein Problem mit einem online-Formular. Hier erstmal der Quellcode:
| Code: |
<form action=<?php if ($kID!="") {echo "new.php";} else {echo $PHP_SELF;}?> method="post">
Bitte gib deine User-ID ein: <input type="text" name="kID" value=""><br>
<input type="checkbox" name="PW" Value="pass"> checken?<br>
<input type="submit" name="go">
</form>
|
Ich will mit dem Formular eigentlich erreichen, dass die Seite new.php nur aufgerufen wird, wenn in dem Feld kID etwas eingetragen ist und auf den Button geklickt wird. Ist das Feld leer, soll nichts passieren.
Leider klappt das aber nicht, da bei drücken des Buttons immer versucht wird die folgende Seite aufzurufen:
<Teil wie bei wie formular>method=%22post%22?kID=&go=Anfrage+abschicken
Was mache ich denn da falsch? Oder kennt ihr evtl. eine bessere Möglichkeit, wie man das realisieren kann?
Ich hatte auch schon
| Code: |
|
<form action=<?php ($kID!="") ? echo "new.php" : echo "" ?> method="post">
|
probiert, aber das klappt genau so wenig. Bitte helft mir.
Danke im Voraus.
Gruß
|
| |
 |
:: magic_eagle
:: Beiträge 107:: 1.31 Talkpoints |
|
|
|
|
| |
| |
| |
|
| Code: |
<?php if(isset($_POST['kID'])) {
$page = "new.php";
} else {
$page = $_SERVER['PHP_SELF'];
}
?>
<form action="<?php echo $page; ?>">
|
So oder so ähnlich würde ich es machen.
Allein schon auf Grund der Übersicht.
Mfg sim-value
|
| |
|
:: Sim-value
:: Beiträge 194:: 3.42 Talkpoints |
|
|
| |
| |
| |
|
Leider klappt das auf deine Weise nicht, da ja dort überprüft wird, ob per POST an dieses Dokument kID übergeben wurde. Du hast mir trotzdem geholfen, ich hatte nämlich die Anführungszeichen vor bzw. nach der PHP-Anweisung vergessen. Der Code jetzt lautet
| Code: |
|
<form action="<?php if ($kID!="") {echo "new.php";} else {echo $PHP_SELF;}?>"] method="post">
|
Problem jetzt, es wird immer die Seite selber aufgerufen. Was kann den nun verkehrt sein?
|
| |
 |
:: magic_eagle
:: Beiträge 107:: 1.31 Talkpoints |
|
|
| |
| |
| |
|
| magic_eagle hat folgendes geschrieben: |
| Code: |
|
<form action="<?php if ($kID!="") {echo "new.php";} else {echo $PHP_SELF;}?>"] method="post">
|
|
Da steht jetzt:
Wenn
kID = Leer dann
new.php aufrufen
sonst
nichts tun
ende
In deinem Eingangspost steht aber, dass du wenn etwas reingeschrieben wird in dein kID Feld, so soll dann new.php aufgerufen werden. Du hast da jetzt nur ein Dreher drinne, aktuell müsste wenn du nichts eingibst die new.php aufgerufen werden.
|
| |
 |
:: Cekic
:: Beiträge 123:: -1.73 Talkpoints |
|
|
| |
| |
| |
|
| Cekic hat folgendes geschrieben: |
Da steht jetzt:
Wenn
kID = Leer dann
new.php aufrufen
sonst
nichts tun
ende
In deinem Eingangspost steht aber, dass du wenn etwas reingeschrieben wird in dein kID Feld, so soll dann new.php aufgerufen werden. Du hast da jetzt nur ein Dreher drinne, aktuell müsste wenn du nichts eingibst die new.php aufgerufen werden.
|
Ich will ja nichts sagen, aber da steht
Wenn kID != Leer ...
Das heißt, wenn kID nicht leer ist, soll new.php aufgerufen werden. So soll es ja auch sein, nur wenn etwas eingetragen wurde, soll auf new.php weitergeleitet werden. Leider klappt das aber trotzdem nicht. new.php wird nie aufgerufen. Egal, ob ich das Feld leer lasse, oder etwas rein schreibe, man landet immer auf der gleichen Seite, also muss da noch irgend etwas falsch sein. Bitte helft mir.
|
| |
 |
:: magic_eagle
:: Beiträge 107:: 1.31 Talkpoints |
|
|
| |
| |
| |
|
Von woher kommt deine Variable kID ?
Normalerweise müsste es $_POST['kID'] lauten.
Mfg sim-value
|
| |
|
:: Sim-value
:: Beiträge 194:: 3.42 Talkpoints |
|
|
| |
| |
| |
|
Die Variable kID soll eigentlich die Variable sein, welche den Wert des entsprechenden Formularfeldes hat. Und je nachdem, ob das Feld ausgefüllt ist, oder nicht soll bei drücken des Buttons eine andere Aktion ausgeführt werden.
Wenn ich das richtig verstanden habe, dachtest du, dass kID an die Seite mit dem Formular übergeben wird, oder?
Tut mir Leid, wenn wir uns da missverstanden haben.
Gruß
magic_eagle
|
| |
 |
:: magic_eagle
:: Beiträge 107:: 1.31 Talkpoints |
|
|
| |
| |
| |
|
| Zitat: |
|
Die Variable kID soll eigentlich die Variable sein, welche den Wert des entsprechenden Formularfeldes hat
|
Hast du das vorher im Code definiert ?#
Wenn nein liegt da der Fehler.
Mfg sim-value
|
| |
|
:: Sim-value
:: Beiträge 194:: 3.42 Talkpoints |
|
|
| |
| |
| |
|
Dann muss ich wohl gestehen, dass ich das nicht vorher extra im Quelltext angegeben habe, da ich irgendwo gelesen hatte, dass der Name eines Formularfeldes gleich einer Variablen mit dem gleichen Namen zugeordnet wird. Das ist wohl nicht so?
Wie muss ich das denn vorher definieren?
|
| |
 |
:: magic_eagle
:: Beiträge 107:: 1.31 Talkpoints |
|
|
| |
| |
| |
|
Das stimmt allerdings nicht.
Du kannst entweder direkt $_POST['kID'] schreiben oder es so definieren.
| Code: |
|
$kID = $_POST['kID'];
|
Dann sollte es gehen.
Mfg sim-value
|
| |
|
:: Sim-value
:: Beiträge 194:: 3.42 Talkpoints |
|
|
| |
| |
| |
|