CPAN: Google Sitesearch mit variabler URL

Beitrag lesen

es geht NICHT um einen einfachen LInk, den ich einbinden möchte, sondern um ein [Formular]

Das kann nicht dein Ernst sein, bist du nicht in der Lage, eines ins andere zu überführen? Das sind grundlegende Dinge, bitte nochmal das SELFHTML-Kapitel "HTML/Formulare" durcharbeiten.

Das Layout dieser Dateien verwalte ich in EINER Vorlage (*.dwt). In dieser Vorlage - und somit in ALLEN X-100 Dateien befindet sich der Code für die Search-Funktion

Ich habe vorhin zwei Ansätze genannt.

Filter im Markup vom Formularfeld vorbelegen
--------------------------------------------

Dein Webframework, das du noch gar nicht genannt hast, exponiert die aktuelle URL oder bequemerweise sogar Teile davon in seiner API, bspw. heißt das in Catalyst for_uri. Du brauchst bloß den manipulierten Pfad in der Vorlage an der entsprechende Stelle, die den Wert für das Attribut "value" des Inputelements mit dem Namen "q" erzeugt, einfügen, so dass er im Webbrowser vorbelegt angezeigt wird. Wie gesagt, kenne ich dein (Vorlagen-)System nicht, also kann ich das nur abstrakt beschreiben, nicht konkret.

mit Javascript beim Abschicken hinzupfriemeln
---------------------------------------------

Der Code ist ungetestet. Er benötigt JQuery.

<form action="http://www.google.com/search" method="get" id="suche">  
    <input type="hidden" checked="checked" name="sitesearch" value="www.codx.ch">  
    <input type="text" style="width: 200px" maxlength="255" size="30" name="q" value="" id="q">  
    <br>  
    <input type="submit" value="OnlineHelp durchsuchen" name="btnG">  
</form>  
  
<script type="text/javascript">
var path = window.location.pathname;  
// this would be much easier with RE, but JS  
// doesn't have lookbehind, WTF!! let's work around.  
path = path.split('/', 4);  // e.g. ['', 'pohelp', 'v8.7', 'de']  
path.shift();               // e.g. ['pohelp', 'v8.7', 'de']  
path = path.join('/');      // e.g. 'pohelp/v8.7/de'  
path.replace('\.', '/');    // crappy google is crappy, dots don't work  
$('#suche').submit(function() { $('#q').val("inurl:'" + path + "' " + $('#q').val()); });

</script>

Wie kriege ich es hin, dass im hidden Feld des Formulares immer der entsprechende Pfad
                            im hidden Feld des Formulares
                               hidden

Du hörst nicht zu. Der inurl-Filter von gehört in das Suchfeld! Das kannst du schlecht verstecken.