2010-02-19 8 views
6

Ist es möglich, eine Suchvariable an die benutzerdefinierte Suchmaschine von Google zu übergeben, die ich auf meiner Website eingebettet habe? Ich kann die Suchmaschine an der Arbeit, aber ich kann es nicht einen Begriff über POST übergeben (es ist von einer Suchtaste auf anderen Seiten der Website kommen)Variable an die benutzerdefinierte Suchmaschine von Google übergeben

Ich habe versucht, den Code zu hacken ich hier gefunden: http://code.google.com/apis/ajax/playground/?exp=search#hello_world

Und das ist, was ich habe, so weit ... ($ q der Begriff ich vorbei bin daran)

<script type="text/javascript"> 
    google.load('search', '1', {language : 'en'}); 

    function OnLoad() 
    { 
     var customSearchControl = new google.search.CustomSearchControl('***my key****'); 
     customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET); 
     customSearchControl.draw('cse'); 
     searchControl.execute("$q"); 
    } 
    google.setOnLoadCallback(OnLoad); 
</script> 

Dank

Antwort

5

Sorry, ich weiß, es ist eine beschissene Antwort, aber Sie‘ Ich habe es sogar richtig gemacht, abgesehen davon, dass ich auf den falschen Variablennamen verwiesen habe. Oh, auch, so nebenbei, ich würde auch hoffen, dass Sie irgendeine Art von sanitisation auf $ q tun, falls jemand etwas zu dem Formular geschrieben: Begriff „); alert (“ aha

customSearchControl.draw('cse'); 
    searchControl.execute("$q"); 

sollte sein:

customSearchControl.draw('cse'); 
    customSearchControl.execute("$q"); 

auch danke für die Frage - ich suchte, wie dies selbst zu tun

+0

Thank you !! Ich habe mir die Haare ausgezogen, und es hat perfekt funktioniert. Danke noch einmal! – Matt

2

Dies jemand ist zu helfen, mit PHP das gleichen Ziel zu erreichen versuchen, das Beispiel oben!. verwendet ...

customSearchControl.execute("$q"); 

die Parameter sind Pässe. Auf einer PHP-Website zu lesen Sie verwenden würden ...

customSearchControl.execute("<?php echo $_POST['your_paramter_name_here'];?>"); 

Sie $ _GET oder $ _REQUEST benutzen könnten, wenn Ihre Parameter nicht in der Post sind.

Natürlich sollten Sie die Eingabe zuerst bereinigen. So etwas ist ziemlich schwach, aber es ist ein Anfang ...

customSearchControl.execute("<?php echo htmlentities(trim($_POST['your_paramter_name_here']), ENT_QUOTES);?>"); 
1

Falls jemand für etwas mehr geradeaus/einfache Lösung suchen. Alles, was Sie tun müssen, ist das Übergeben von Suchbegriffen an den GET-Parameter mit dem Namen q (von Ihrem benutzerdefinierten Formular aus in die Seite, in der sich Ihr GCS befindet), GCS verwendet automatisch diesen Suchbegriff.

Quelle: https://developers.google.com/custom-search/json-api/v1/using_rest

+0

Was für eine schön einfache Lösung. '' site.com/search? q = query'' wird automatisch mit dieser Abfrage suchen. Vielen Dank! –

Verwandte Themen