Formular: <form action="Variable" ......>

solala123

Erfahrenes Mitglied
Hallo,
ich habe ein Formular das u.a. auch die Eingabe der Postleitzahl hat.
Nun möchte ich mit eingabe der Plz. auch eine ander Webseite aufrufen.
z.B. Eingabe 91126 soll die Seite 91126.php aufrufen
Eingabe 91154 soll die Seite 91154.php aufrufen

ich habe mir das so vorgestellt <form action="Variable von Plz" .......>
Ist das so machbar und wie sollte es aussehen? oder gibt es andere Lösungen?

mein Formular sieht so aus:

HTML:
<form action="Ausgabe.php" method="post" name="finden" >


<fieldset><legend><span class="Stil1">Suchkriterien</span></legend>

<table width="100%" border="0" cellpadding="2" cellspacing="0"   bgcolor="#2F2F2F"><tr><td colspan="3" ><table width="100%" border="0" cellpadding="2" cellspacing="0" bgcolor="#EBC09A">
  <tr>
    <th colspan="5" scope="col"><img src="images/leiste-schatten-oben-braun.gif" width="100%" height="24" /></th>
  </tr>
  <tr>
    <td width="1%">&nbsp;</td>
    <td width="25%"><span class="Stil3">Plz. mind. 3 Stellen</span></td>
    <td width="26%"><span class="Stil3">Ort</span></td>
    <td colspan="2">&nbsp;</td>
  </tr>
  
  
  <tr>
    <td>&nbsp;</td>
    <td>
    <input name="plz" type="text" size="6" maxlength="6" />     </td>
    
    <td colspan="3">
    <input name="ort" type="text" size="40" maxlength="38" />    </td>
  </tr>
  
  
  <tr>
    <td><span class="Stil2"></span></td>
    <td width="25%"><span class="Stil3">Art der K&uuml;che</span></td>
    <td width="25%"><span class="Stil3">Garten</span></td>
    <td width="25%"><span class="Stil3">Behinderten gerecht</span></td>
    <td width="25%"><span class="Stil3">&Uuml;bernachtung m&ouml;glich</span></td>
  </tr>
  
  
  
<tr>
    <td>&nbsp;</td>
    <td>
        <select name="kueche" id="kueche"  size="1" maxlength="30" >
        <option> </option>
        <option>fränkisch</option>
        <option>deutsch</option>
        <option>italienisch</option>
        </select>    </td>
    <td>
        <select name="garten" id="garten"  size="1" maxlength="5" >
        <option> </option>
        <option>ja</option>
        <option>nein</option>
        </select>    </td>
    <td>
        <select name="behindert" id="behindert"  size="1" maxlength="5" >
        <option> </option>
        <option>ja</option>
        <option>nein</option>
        </select>    </td>
    <td>
        <select name="nacht" id="nacht"  size="1" maxlength="5" >
        <option> </option>
        <option>ja</option>
        <option>nein</option>
        </select>   </td>
</tr>
<tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
         <td colspan="2">&nbsp;</td>
</tr>
<tr>
         <td>&nbsp;</td>
         <td>&nbsp;</td>
         <td>&nbsp;</td>
         <td colspan="2">&nbsp;</td>
</tr>
<tr>
        <td colspan="5" >&nbsp;
        <input type="submit" name="submit" value="suchen" />
        <input type="reset" value="Löschen" onClick="return confirm('Wirklich Eingaben verwerfen?')" /></td>
 </tr>
 <tr>
        <td colspan="5">
        <img src="images/leiste-schatten-unten-braun.gif" width="100%" height="24" />    </td>
</tr>
</table></td>
</tr>
</table>
</fieldset>


           
</form>

Herzlichen Dank
mfg
Rainer
 
Hallo,

sprich den Nutzer auf eine Seite x weiterleiten, wobei x von der Nutzereingabe auf der ersten Seite abhängt?

Zwei Möglichkeiten:

- JavaScript nutzen. Einfach einen Eventlistener zu einem Button o.Ä. hinzufügen, die Eingabe überprüfen (entsprechende Whitelist beispielsweise) und dann mittels window.location.href zur neuen URL weiterleiten lassen.

- Serverseitige Sprache. Der Eingabetext wird an ein fixes Skript übergeben (dessen URI sich nicht ändert) und dieses Skript leitet dann je nach Eingabe auf eine andere Seite weiter.
 
Hallo ComFreek,
Danke,

habe mal nach Eventlistener den google bemüht, was habwegs vernünftiges habe ich nicht gefunden, aber ich weiß jetzt, dass es viele verschiedene Formen von Events gibt aber welcher zu mir passt, das weiß ich noch nicht. Es scheint für einen Unwissenden recht schwer zu sein.
hast du irgendwo ein Beispiel?

Ich könnte das alles in "SPS-S7" programmieren aber leider nützt mir das hier wenig :(

Auch dein 2 Beispiel verstehe ich was Du meinst, aber in der Umsetztung scheitert das Vorhaben
ein Schubs in die richtige Richtung wäre toll, wo ich dann wieder weiter suchen und (vielleicht) finden kann

Gruß
Rainer
 
Zum ersten

Ganze simples Beispiel:
Javascript:
var button = document.getElementById("deine-button-id-der-gedrückt-wird");
var input = document.getElementById("deine-input-id-wo-die-plz-reinkommt");

function validatePostalCode(str) {
  // ...
}

button.addEventListener("click", function () {
  if (validatePostalCode(input.value)) {
    window.location.href = input.value + ".php";
  }
});
validate() soll die PLZ auf Gültigkeit überprüfen.

Zum zweiten
Deine <form> soll an das Skript forward-postalcode.php senden.

PHP:
<?php

function validate($postalCode) {
  // validate
  return true;
}

if (isset($_POST['postalCode'])) {
  $postalCode = $_POST['postalCode'];

  if (validate($postalCode)) {
    header('Location: ' . $postalCode . '.php');
    exit;
  }
}
 
Hallo,
vielen Dank für Deine Hilfe,
werde sie mir in den nächsten Tagen ansehen.
Schönes verbleibendes WE
Gruß
Rainer
 
Hallo
habe noch zum Verständnis ein paar Fragen:
zum zweiten:
wenn diese Funktion aufgerufen wird, dann soll die eingegebene Postleitzahl überprüft werden ob kein blödsinn darinnen steht.
wenn es eine Postleitzahl ist, wird true ausgegeben und es kann mit if weiter gemacht werden,
PHP:
function validate($postalCode) {
  // validate
  return true;
}

if
Was ich nicht daran verstehe, wo oder wie wird die Variable $postalCode deklariert?



In $_Post steht ja die eingegebene Plz drinnen mit isset wir geprüft ob sie nicht null ist,
danach wird die Plz in die Variable $postalCode übertragen.
PHP:
if (isset($_POST['plz'])) {
  $postalCode = $_POST['plz'];     // hier steht meine Plz drinnen




hier soll die Plz nochmals überprüft werden
und dann die Datei Plz.php aufgerufen werden.
PHP:
  if (validate($postalCode)) {
    header('Location:' . $postalCode . '.php');
    exit;
echo $postalCode;   // habe ich zur Überprüfung eingesetzt
  }

Was muss ich als Location einsetzen? denn es wird die Datei mit der Plz.php nicht aufgerufen
in echo $postalCode; steht die Plz richtig drinnen.

Und wenn nichts oder $ oder % mit in der Plz stehen wird das alles auch in echo $postalCode; angezeigt.
sollte, wenn in der Eingabe Plz was falsches steht nicht in der ersten Zeile mit false abgebrochen werden ?

Gruß
Rainer
 
validate() soll TRUE zurückgeben, wenn $postalCode eine gültige PLZ in deinem Sinne ist. Ansonsten FALSE.

$postalCode wird als Parameter der Funtkion übergeben.

isset() prüft übrigens auch, ob der Eintrag im Array überhaupt existiert.

Mit header('Location:') wird der Browser angefordert, auf die angegebene Seite weiterzuleiten.
Nach exit; wird natürlich nichts mehr ausgeführt, denn damit wird das PHP-Skript sofort abgebrochen.

Ganz am Ende kannst du noch dies hinzufügen:
PHP:
exit('Wrong postal code.');
Sprich wenn exit; nicht ausgeführt wurde (keine oder ungültige PLZ), dann wird dieses exit; ausgeführt und 'Wrong postal code' wird ausgegeben.
 
Hallo,
jetzt glaube ich zu Wissen, wo der Fehler liegt,
es soll nicht ein Browser geöffnet werden, sondern eine andere Seite meiner Homepage.

Gruß
Rainer
 
Mit beiden meiner Codes wird einfach nur weitergeleitet. Es wird kein 'Browser' geöffnet (was das auch heißt, du meinst vllt. Tab).
 
Hallo
TAB --> \t
erzeugt doch ein Leerzeichen ?

Was ich möchte ist folgendes:
ich habe in meiner Hompage Datei verschiedene Seiten die als Postleitzahl benannt sind
z.B. 91126.php
91154.php

wenn jetzt in meinem Formular jemand die Plz 91126 eingibt, sollte die Seite 91126.php geöffnet werden.

Danke
mfg
Rainer
 
Zurück