PHP Wert aus Textfeld übergeben

tammyTUX

Lt. Junior Grade
Registriert
Sep. 2002
Beiträge
347
Hallo Forum,

irgendwie steh ich im Moment neben mir - ich habe ein paar Jahre nichts mehr in der Richtung gemacht...

Folgendes:
Ich habe eine Formular mit Dropdown-Box, Textfeld und Submit-Button. Die Formular-Aktion wird aus dem Wert des jeweiligen Eintrags der Dropdown-Box übernommen - soweit funktioniert es. Jetzt soll an die Formular-Aktion noch der Begriff aus dem Textfeld angehangen werden, aber da haperts: Die Begriff wird nicht übergeben, obwohl ich den Begriff per POST-Variable übergebe.

Code:
<form id="form" name="form" method="POST" target="ergebnis" action="">
<input type="text" name="suchbegriff" id="suchbegriff" />
  <select name="select" id="select" onChange="form.action=this.value">
    <option value="http://localhost/datenbank2/suche?ie=titel&begriff=<?php $_POST['$suchbegriff']; ?>">Datenbank 2</option>
    <option value="http://localhost/datenbank1/suche?ie=titel&begriff=<?php $_POST['$suchbegriff']; ?>">Datenbank 1</option>
    <option value="http://localhost/datenbank3/suche?ie=titel&begriff=<?php $_POST['$suchbegriff']; ?>">Datenbank 3</option>
    <option value="http://localhost/datenbank4/suche?ie=titel&begriff=<?php $_POST['$suchbegriff']; ?>">Datenbank 4</option>
  </select>
<input type="submit" name="button" id="button" value="Go" />
</form>

Ich wäre euch dankbar, wenn mir jemand weiterhelfen könnte.

VG
salnet
 
ich glaube die POST übergabe ist falsch.
hast du es mal mit: $_POST['suchbegriff'] versucht?
 
Hallo,

verwende doch mal die "GET"-Methode und überprüfe nach Abschicken des Formulars die Adressleiste.


Edit:

Erklär doch auch noch bitte genauer, was zu da versuchst bzw. wie das Resultat aussehen soll...


Gruß
Frog33r
 
Zuletzt bearbeitet:
Hallo Blackbenji,
danke für den Tipp. Ich habe
Code:
$_POST['suchbegriff']
versucht, aber der Begriff wird immer noch nicht übergeben.

Frog33r: Das wird eine Suchbox, ähnlich wie hier bei Computerbase im Header. Über das Dropdownfeld wird eine Datenbank ausgewählt, in das Textfeld ein Suchbegriff eingegeben.
 
hmm...wenn ich das richtig sehe:

man gibt in input den suchbegriff ein und soll ihn im dropdown schon anzeigen ohne site reload?
dann bringt dir post oder get ja nichts. der wert im formular wird beim betreten der seite schon gefüllt, und da der wert 0 ist, funktioniert es auch nicht.

da müsste dann jquery her, oder du fängst die eingabe vorher ab.
 
Blackbenji: so wie du es beschreibst, macht es natürlich Sinn, dass der von mir genommene Weg nicht funktioniert. War wohl schon etwas spät heute morgen.
WIe könnte ich sowas denn mit Javascript/jQuery lösen? Javascript ist für mich ein rotes Tuch.
 
Wenn (und so sieht es deinem Beispiel nach aus) völlig unterschiedliche Adressen für die Anfragen nötig sind, dann bleibt dir nur es entweder per JS zu machen oder du schickst alles an ein weiteres PHP Script, dass dann zur richtigen Adresse weiterleitet, also irgendwie so:
Code:
<form method="POST" action="forward.php">
  <input type="text" name="suchbegriff" />
  <select name="dbSelect">
    <option value="db1">Datenbank 1</option>
    <option value="db2">Datenbank 2</option>
    <option value="db3">Datenbank 3</option>
    <option value="db4">Datenbank 4</option>
  </select>
  <input type="submit" name="button" id="button" value="Go" />
</form>

Und dann ein PHP-Script in der Art:

forward.php
PHP:
<?php

$dbUrls = array(
  'db1' => "http://localhost/datenbank1/suche?ie=titel",
  'db2' => "http://localhost/datenbank2/suche?ie=titel",
  'db3' => "http://localhost/datenbank3/suche?ie=titel",
  'db4' => "http://localhost/datenbank4/suche?ie=titel"
);

header("Location: ".$dbUrls[$_POST['dbSelect']]."&begriff=".$_POST['suchbegriff']);

?>
Selbstverständlich sind noch falsche übergebene Werte abzufangen falls das Probleme verursachen könnte, der Code soll nur die Idee darstellen (kann auch noch andere Fehler enthalten).

Falls du sonst noch kein JS verwendest wäre diese Lösung mit nur PHP eventuell zu bevorzugen. Wenn du sowieso schon JS verwendest, dann kannst du es auch mit JS machen.
 
Zuletzt bearbeitet: (indent)
Javascript möchte ich nur nutzen, wenn es unbedingt sein muss.
Backslash, du hast mir mit deinem Code sehr geholfen, darauf kann ich aufbauen. Vielen Dank!
 
Zurück
Oben