Передайте переменную в систему пользовательского поиска Google - PullRequest
6 голосов
/ 19 февраля 2010

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

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

И это то, что у меня есть до сих пор ... ($ q - это термин, который я передаю ему)

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

Спасибо

Ответы [ 3 ]

6 голосов
/ 08 марта 2010

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

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

должно быть:

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

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

2 голосов
/ 20 апреля 2015

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

Источник: https://developers.google.com/custom-search/json-api/v1/using_rest

2 голосов
/ 13 апреля 2011

Это поможет любому, кто использует 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 );?>");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...