Hallo Bounty
<a onclick="window.frames['main'].location.href='suche.php?suchen='+suchbegriff; return false;" href="">
</a>
Mit dieser Zeile leitest du auf die Seite suche.php um, allerdings übergibst du dabei den Parameter als GET Parameter. Dazu ein paar Worte als Erläuterung:
wenn du einen normalen Link einbaust, wie zum Beispiel:
<a href="suche.php?suchen=test>ein Testlink</a>
und dann darauf klickst, wird das Script suche.php aufgerufen und sofern PHP zur Verfügung steht, ist dann im Script die Variable $_GET['suchen'] definiert und hat den Wert 'Test'. Dies ist ein sogenannter GET Parameter. Dieser kann direkt über die URL übergeben werden. ich könnte auch direkt in der Adresszeile des Browsers eingeben: www.example.com/suche?suchenn=nocheintest, dann hätte $_GET['suchen'] den Wert 'nocheintest'. Aufpassen muss ich hierbei, wenn ich Sonderzeichen, aber auch Leerzeichen übertragen will. In diesem Fall muss ich den Parameter speziell codieren. Aber das führt im Moment zu weit.
Zurück zu deinen Formular (und jetzt kommt der Trick) Wenn man ein Formular benutzt, will man (meistens) die Parameter nicht als GET, sondern als POST übertragen. Daher kann man im form-tag das Attribut method setzen. Also method="post" oder method="get". Wenn method="post" gesetzt ist, steht der Wert des Parameters (in deinem Beispiel) hinterher in $_POST['suchen']. Aber wie komme ich zu der anderen Datei (dem Script suche.php)?
Im Formular kann (muss) ich mit dem Atribut action angeben, wohin das formular abgeschickt werden soll. Also in diesem Fall action="suche.php". Beachte bitte, dass hier nichts an die URL angehängt wird. Die Werte sollen ja über POST gesendet werden...
Absenden kann man das ganze über einen button zum absenden hier bemühe ich mal SELFHTML, da ist alles ziemlich gut erklärt.
Falls irgendwas an dieser Antwort unklar ist, frag ruhig nochmal nach. Ich schweife manchmal ein wenig vom Thema ab und habe auch noch nicht soviel Erfahrung mit dem Erklären, aber ich bemühe mich :-)
Liebe Grüße mbr