Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Angellis

Highlight no resultado de uma busca

Recommended Posts

Saudações,Anteriormente eu estive tento problemas para fazar a busca no meu sistema. Agora está tudo ok, (Valeu Adailton!).Agora para melhorar (e complicar) eu pensei em colocar o um highlight na string que foi procurada. Só que não tenho a mínima noção de como fazer.Eu faço uma comparação usando LIKE nos campos que desejo e tenho os ids dos registros.Depois monto uma página com todas as ocorrências com hyperlink para a página que fará a busca apenas daquele registro e ai sim montar o cadastro.O highlight apareceria apenas nessa última página.Não sei se seria Javascript ou php para fazer isso.Alguém pode me recomendar algo?Grato,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabyo,Tipo, o problema é que não tenho uma string apenas. Imagine que eu tenho uma tabela com os campos id, nome, endereço, telefone, e-mail, cargo, etc.A página que eu desejo aplicar o Highlight recebe o ID e faz a busca retornando os campos.Então eu imprimo isso nos lugares certos da página, de acordo com uma formatação que eu preciso manter.Se eu aplicar isso antes de cada echo não vai ficar meio tosco?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Problema resolvido :)

Só fica a dúvida com relação a estar usando essa solução para cada vez que for imprimir algo.

 

Outra coisa, não consegui entender bem o funcionamento:

 

$str = "Vou me embora para Passargada";$str = str_replace("Passargada", "<span style='color:red'>$str</span>", $str);echo $str;
Eu tenho a seguinte saída:

Vou me embora para Vou me embora para Passargada

 

Como contorno isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara a variavel $str é a q provavelmente vai vir do formulario de busca.

 

não sei se você reparou mas você ta mandando substituir "Passagarda" por "Vou me embora para Passargada"

 

$str = str_replace("Passargada", "<span style='color:red'>$str</span>", $str);

o script ta achando Passagarda dentro da string $str e substituindo esse trecho pela variavel $str com a formatação nova q é a mudança de cor.

 

como o a variavel $str provavelmente vai vir de um formulario um jeito correto seria esse

 

$str = "Vou me embora para Passargada";$str = str_replace($str, "<span style='color:red'>$str</span>", $str);echo $str;

aonde ele procuraria a string digitada no formulario e formataria ela.

 

espero ter ajudado

 

[]s!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, espero que ajude, fiz uma pequena função.<?function highlight($palavras,$texto){ for ($i=0; $i<count($palavras); $i++){ $texto = str_replace($palavras[$i],'<span style="background: #CCCCCC;">' . $palavras[$i] . '</span>', $texto); } return $texto; }$texto = 'Isso é um teste do high'; $palavras = array ('um','high'); echo highlight($palavras,$texto);?>Se tiver dúvidas poste aí.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utitilzo a função ereg_replace()?

Ou seria outra?

 

De qualquer forma, tentei usando essa função e não tive sucesso. Continua trabalhando com case sensitive.

Quando uso a função eregi() tudo certo, mas se tento usar do mesmo geito para a ereg_replace() não tenho tanta sorte

 

$string = "Vou me embora para Passargada";	echo eregi ("passar", $string);echo ereg_replace("passar", "<strong>Passargada</strong>", $string);

Onde estou a errar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabyo deixe eu abusar da sua boa vontade.Procure pela função preg_x e não achei nada. Além disso, não entendi o que você quer dizer com o modificador i.Nunca usei expressões regulares então estou mais perdido que cego em tiroteio.Grato,

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao quando falei sobre as funções preg_x eram essas:

 

preg_grep

preg_match_all

preg_match

preg_quote

preg_replace_callback

preg_replace

preg_split

 

no seu caso você vai usar a preg_replace()

 

e sobre modificadores

 

http://br.php.net/manual/pt_BR/reference.p...n.modifiers.php

 

exemplo

$frase = preg_replace("#$palavra#i", "<span style='color:red;'>\\0</span>", $frase);

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.