Pergunta

É possível passar uma variável de pesquisa no mecanismo de pesquisa personalizado do Google que eu incorporei no meu site? Eu posso fazer com que o mecanismo de pesquisa funcione, mas não posso passar por um termo por correio (ele vem de um botão de pesquisa em outras páginas do site)

Tentei invadir o código que encontrei aqui: http://code.google.com/apis/ajax/playground/?exp=search#hello_world

E é isso que eu tenho até agora ... ($ Q é o termo que estou passando para ele)

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

Obrigado

Foi útil?

Solução

Desculpe, eu sei que é uma resposta ruim, mas você realmente conseguiu referenciar o nome da variável errada. Ah, também, como um aparte, eu também espero que você esteja fazendo algum tipo de desinfecção em $ q, caso alguém tenha postado algo assim no seu formulário: termo "); alerta (" aha!

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

deveria estar:

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

Além disso, obrigado pela pergunta - eu estava procurando como fazer isso sozinho!

Outras dicas

Isso é para ajudar qualquer pessoa que use o PHP tentando atingir esse mesmo objetivo. O exemplo acima usa ...

customSearchControl.execute("$q");

Para ler o parâmetro que está sendo passa. Em um site de PHP, você usaria ...

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

Você pode usar $ _get ou $ _request se seu parâmetro não estiver na postagem.

Claro que você deve higienizar a entrada primeiro. Algo assim é muito fraco, mas é um começo ...

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

Caso alguém esteja procurando uma solução um pouco mais direta / simples. Tudo o que você precisa fazer é passar palavras -chave de pesquisa para obter parâmetro nomeado q (No seu formulário personalizado na página onde está o seu GCS), o GCS usará automaticamente essa frase de pesquisa.

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top