2010-02-19 17 views
6

È possibile passare una variabile di ricerca nel motore di ricerca personalizzato di Google che ho incorporato nel mio sito web? Posso ottenere il motore di ricerca per il lavoro, ma non riesco a passare un termine tramite POST (che proviene da un pulsante di ricerca su altre pagine del sito)Passa la variabile al motore di ricerca personalizzato di Google

ho provato a modificare il codice che ho trovato qui: http://code.google.com/apis/ajax/playground/?exp=search#hello_world

E questo è ciò che ho finora ... ($ q è il termine sto passando ad esso)

<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> 

Grazie

risposta

5

dispiace, so che è una risposta scadente, ma si' In realtà, ha fatto a meno di fare riferimento al nome della variabile sbagliata. Oh, inoltre, come un a parte, vorrei anche sperare che stai facendo una sorta di sanificazione in $ q, nel caso in cui qualcuno ha postato qualcosa di simile al modulo: termine "); alert (" aha

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

dovrebbe essere:

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

Inoltre, grazie per la domanda - che stavo cercando per sapere come fare questo io stesso

+0

Grazie !! Mi sono tirato i capelli su questo, e ha funzionato perfettamente. Grazie ancora! – Matt

2

questo è quello di aiutare chiunque utilizzando PHP cercando di raggiungere questo stesso obiettivo l'esempio di cui sopra!. utilizza ...

customSearchControl.execute("$q"); 

per leggere il parametro essendo passaggi in. Su un sito PHP si usa ...

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

si potrebbe utilizzare $ _GET o $ _REQUEST se il parametro non è nel post.

Ovviamente è necessario prima disinfettare l'input. Qualcosa di simile a questo è abbastanza debole, ma è un inizio ...

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

Nel caso in cui qualcuno è alla ricerca di un po 'più dritto in avanti/soluzione semplice. Tutto quello che devi fare è passare le parole chiave di ricerca nel parametro GET denominato q (dal tuo modulo personalizzato nella pagina in cui è presente il tuo GCS), GCS utilizzerà automaticamente tale frase di ricerca.

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

+0

Che meravigliosa soluzione. '' site.com/search? q = query'' effettuerà automaticamente la ricerca con quella query. Grazie! –

Problemi correlati