изменение свойств слов в поиске php
Говорит о принадлежности, заключается в следующем у меня есть скрипт поиска php, я хотел бы, чтобы, когда он открывает в результате свойств искали слово были изменены(фон, размер, etc), например, полагаю, имя пользователя 'joao' система возвращает мне таблицу с результатами, относящихся только, что вместо того, чтобы показать мне результат обычно система изменит фон слова, которая была исследована, хорошо, проблема в том, я не знаю, если я могу, или я должен сделать это только с php, или я должен использовать javascript, помня, что я не прошу никакой код не готов, да и "лучший путь"
Следующий код, как результаты запроса отображаются
while ($linha = $query->fetch(PDO::FETCH_ASSOC)) {
echo '<tr class="odd gradeX">';
echo '<td>' . $linha['NOME'] . '</td>';
echo '<td>' . $linha['EMAIL'] . '</td>';
echo '<td>' . $linha['LOGIN'] . '</td>';
echo '<td>' . $linha['DT_NASCIMENTO'] . '</td>';
echo '<td>' . $linha['DT_ULTIMOACESSO'] . '</td>';
echo '<td>' . $linha['IP'] . '</td>';
echo '</td>';
}
приведенный выше код генерирует результаты в этой таблице
1 answers
Предполагая, что вы используете query поэтому SELECT * FROM tabela WHERE NOME LIKE ? OR EMAIL LIKE ?
и переменная внутри глобального вызова $_GET
, лучшим способом было бы создать функция, чтобы сделать эффект в сочетании с CSS, это было бы что-то вроде:
function highlightResult($str, $keyword) {
return str_replace($keyword, '<strong class="destaque">' . $keyword . '</strong>', $str);
}
str_replace
поисках всех местах, со слов сослана в пределах string
и добавляет тег <strong class="destaque">
, таким образом, мы сможем применить эффект с помощью CSS
Ниже приведен пример использования:
<?php
function highlightResult($str, $keyword) {
return str_replace($keyword, '<strong class="destaque">' . $keyword . '</strong>');
}
if (isset($_GET['consulta'])) {//Presumindo que o nome da variável seja consulta
$consulta = $_GET['consulta'];
$sth = $dbh->prepare('
SELECT * FROM tabela WHERE NOME LIKE ? OR EMAIL LIKE ?
');
$busca = array('%' . $consulta . '%', '%' . $consulta . '%');
$sth->execute($busca);
while ($linha = $sth->fetch(PDO::FETCH_ASSOC)) {
echo '<tr class="odd gradeX">';
echo '<td>', highlightResult($linha['NOME'], $consulta), '</td>'; //Adiciona efeito de destaque na primeira coluna
echo '<td>', highlightResult($linha['EMAIL'], $consulta) '</td>'; //Adiciona efeito de destaque na segunda coluna
echo '<td>', $linha['LOGIN'], '</td>';
echo '<td>', $linha['DT_NASCIMENTO'], '</td>';
echo '<td>', $linha['DT_ULTIMOACESSO'], '</td>';
echo '<td>', $linha['IP'], '</td>';
echo '</td>';
}
} else {
...
}
CSS должно быть что-то вроде (изменить по вашему необходимости):
strong.destaque {/*Strong já possui um efeito parecido com o negrito*/
color: red; /*modifique a cor conforme necessário*/
}