[PHP] Code für x dynamisch erzeugte Formulare auch x-mal erzeugen?

M

Mr. Snoot

Gast
Hio,

ich bastel grad an einer Suchfunktion, bei der ähnliche Worte vorgeschlagen werden, wenn nichts gefunden wurde.

Jetzt sollen die Vorschläge direkt anwählbar sein, um damit die Suche fortzusetzen. Über Links allein lässt sich ein Formular ja leider nicht abschicken, JS möchte ich vermeiden. Bleibt als Lösung, alle Begriffe als Submit-Buttons auszugeben (lässt sich mittels CSS ja auch gut anpassen).

Nun hab ich aber ein "Problem", da ich scheinbar für jeden Button den kompletten Formular-Code (alle hidden-fields usw.) erzeugen muss. Wenn ich das Formular einmalig außerhalb der foreach-Anweisung starte/beende klappt das nur, solange nicht mehr als ein Vorschlag ausgegeben wurde.

Gibts ne bessere Lösung als das? Es ändert sich ja nur die Buttonbezeichnung und der Suchbegriff, alle anderen Felder wären identisch.
PHP:
		  foreach($words as $word => $anzahl)
		  {
		    $prozent = 1-levenshtein(strtolower($input), strtolower($word))/max(strlen($input), strlen($word));

		    echo "<tr><td><form method=post action=\"suche.php\">";
		    echo "· ";
		    echo "<input class=\"eingabe\" style=\"font-size:10px\" type=\"submit\" value=\"";
			echo $word;
		    echo "\">";
		    echo "<input type=\"hidden\" name=\"searchexp\" value=\"";
		    echo $word;
		    echo "\">";
		    echo "<input type=\"hidden\" name=\"exp_capital\" value=\"no\" checked>";
		    echo "<input type=\"hidden\" name=\"exp_full\" value=\"no\" checked>";
		    echo "<input type=\"hidden\" name=\"Kapitel\" value=\"on\" checked>";
		    echo "<input type=\"hidden\" name=\"Lexikon\" value=\"on\" checked>";
		    echo "<input type=\"hidden\" name=\"pp\" value=\"10\" checked>";
		    echo "<span class=\"lexam\" style=\"line-height:10px\"> (&Uuml;bereinstimmung: ";
		    echo round($prozent * 100,0);
		    echo "%)</span></form><br></td>";
		  }
 
Wieso lässt sich über einen Link kein Formular abschicken?

Entweder direkt alles in den Link schreiben: href="bla.php?var1=wert1&..."

Oder halt (was hast du gegen das bissler JS?): href="javascript: document.getElementByID['formular'].submit();"


Muss es POST sein? Für suchen find ich das eigentlich nicht so schön weil der Browser dann immer wieder die POST Daten neu senden muss und du außerdem die Suche nicht Bookmarken kannst. Google benutzt GET. Außerdem kann man mit GET über Launchy oder Quicksilver deine Suche direkt ansteuern.

Ich sehe das Problem also nicht.
 
1. habe das mit dem Link probiert und es hat nicht geklappt => Google: Ergebnis: geht nicht

2. JS wäre halt doof, wenn es ein Besucher ausgeschaltet hat; edit: bei der JS-Lösung bräuchte ich ebenso x-Formulare, von daher scheidet es komplett aus.

3. das ursprüngliche Suchscript war so aufgebaut, deswegen ist das mit POST - deswegen lässt sich das Suchergebnis aber auch bookmarken (warum auch nicht?). Ist aber auch egal - da muss man nichts bookmarken ;)

Ich sehe das Problem also schon :(
 
Zuletzt bearbeitet:
Zurück
Oben