2010-02-19 1 views
6

Возможно ли передать переменную поиска в Google Custom Search Engine, которую я встроил на свой веб-сайт? Я могу получить поисковую систему для работы, но я не могу передать его член через POST (он идет от кнопки поиска на других страницах сайта)Передать переменную в систему пользовательского поиска Google

Я пытался взломать код, который я нашел здесь: http://code.google.com/apis/ajax/playground/?exp=search#hello_world

И это то, что я до сих пор ... ($ д термин, я передаю ей)

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

Благодаря

ответ

5

к сожалению, я знаю, что это дерьмовый ответ, но вы» на самом деле он получил право, не ссылаясь на неправильное имя переменной. О, также, как в сторону, я хотел бы также надеяться, что вы делаете какой-то санитарной обработки на $ д, в случае, если кто-то разместил что-то подобное в вашей форме: термин «); предупреждение (» ага

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

должно быть:

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

Кроме того, спасибо за вопрос - я искал, как сделать это сам

+0

спасибо! Я вытягивал свои волосы из-за этого, и он работал отлично. Еще раз спасибо! – Matt

2

Это поможет кто с помощью PHP пытается выполнить ту же цель Приведенный выше пример!. использует ...

customSearchControl.execute("$q"); 

читать параметр, проходит. На PHP вы бы использовать ...

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

Вы можете использовать $ _GET или $ _REQUEST, если ваш параметр не в посте.

Конечно, вам следует сначала дезинфицировать вход. Что-то вроде этого является довольно слабым, но это начало ...

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

В случае, если кто-то ищет немного более прямо вперед/простое решение. Все, что вам нужно сделать, это передать ключевые слова в параметр GET с именем q (из вашей пользовательской формы на страницу, где находится ваш GCS), GCS автоматически использует эту поисковую фразу.

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

+0

Какое красиво простое решение. '' site.com/search? q = query'' автоматически выполнит поиск с этим запросом. Спасибо! –

 Смежные вопросы

  • Нет связанных вопросов^_^