Jump to content

[Ajuda] Função procurar redimensiona para hiperligações


SitoMan
 Share

Recommended Posts

Boa tarde pessoal,

Vamos então à questão técnica. Já tenho um campo de "procurar" desenhado (e aplicado) no meu site.

<form method="get" id="searchform" action="<?php echo esc_url( home_url( '/' ) ); ?>">
<input type="text" name="s" id="s" value="<?php _e('Procurar...', 'framework' ); ?>" onfocus="if(this.value==this.defaultValue){this.value=''}" onblur="if(this.value==''){this.value=this.defaultValue}"/>
</form>

O que eu queria era algo que me permitisse qualquer coisa como: Definir 2 ou 3 palavras diferentes e sempre que uma dessas 3 palavras fosse chamada (ou seja, pesquisam por ela), o utilizador fosse levado para um URL especifico. Como estas 2 ou 3 palavras, teria outras 2 ou 3 mas que já redireccionava para um outro URL específico.

Será que alguém tem alguma ideia como isto pode ser feito? Estou sem ideias, e javascript não é nada o meu forte.

Nota: A linguagem utilizada pode ser qualquer coisa, não sei muito de nenhuma.

Desculpem qualquer coisa,

Sito.

Link to comment
Share on other sites

Já estive a tentar criar o que queria, e quase consegui. Mas fiquei-me pelo quase. Tenho alguns problemas. Um deles é o facto de apenas funcionar quando se clica no botão "procurar". Se clicarmos "enter" no teclado não funciona.

Procuro solução para tal. Alguém arranja?

O ideal ainda era não existir botão, só existir a caixa do "procurar" e clicar "enter" e a busca seguia, mas não sei fazer isso. 🙂

Alguém consegue ajudar? Obrigado.

<script type="text/javascript">
function searchengine() {
var search = document.getElementById('searchid').value;
if (search == 'google') {
	window.location = 'http://www.google.com';
}
else if (search == 'wiki') {
	window.location = 'http://www.wikipedia.org/';
}
else if (search == 'youtube') {
	window.location = 'http://www.youtube.com/';
}
else {
	alert('not found');
	}
}
</script>

<form id="searchform">
<input type="text" id="searchid" value="Procurar"  onfocus="if(this.value==this.defaultValue){this.value=''}" onblur="if(this.value==''){this.value=this.defaultValue}"/> 
<input type="button" value="Procurar" onclick="searchengine();"/>
</form>
Link to comment
Share on other sites

Vê esta sugestão:

http://stackoverflow.com/a/155272/515814

O código ASCII do enter corresponde ao número decimal 13. Por isso, para o utilizador carregar em enter e efetuar a pesquisa, apenas tens de ter o teu input assim:

<input type="text" id="searchid" value="Procurar" onkeydown="if (event.keyCode == 13) { searchengine() }"  onfocus="if(this.value==this.defaultValue){this.value=''}" onblur="if(this.value==''){this.value=this.defaultValue}"/>

Não testei contudo, vê se funciona. Se funcionar desta forma, nem precisas do botão.

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other sites

Vê esta sugestão:

http://stackoverflow.com/a/155272/515814

O código ASCII do enter corresponde ao número decimal 13. Por isso, para o utilizador carregar em enter e efetuar a pesquisa, apenas tens de ter o teu input assim:

<input type="text" id="searchid" value="Procurar" onkeydown="if (event.keyCode == 13) { searchengine() }"  onfocus="if(this.value==this.defaultValue){this.value=''}" onblur="if(this.value==''){this.value=this.defaultValue}"/>

Não testei contudo, vê se funciona. Se funcionar desta forma, nem precisas do botão.

Dá simplesmente para criar um input do tipo sumit e deixá-lo invisível caso não seja necessário :

<input type="submit" name="submit" value="" style="display:none;" />
Link to comment
Share on other sites

Eu testei esse bocado no chrome e está a funcionar. Mas se optares pela sugestão do Yoda, em vez de teres de colocar código no input, tens de o colocar no form, da seguinte maneira:

<form id="searchform" onsubmit="searchengine(); return false">

O return false serve para o formulário não ser enviado para o servidor (não sei se é isto que pretendes, mas o que percebi foi que se uma das palavras chave não existir num campo, dá o erro "not found", e não vai para a página de resultados).

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.