【发布时间】:2016-06-16 19:45:56
【问题描述】:
我试图在 PHP 搜索中突出显示我的搜索结果,但它突出显示不受欢迎
我使用下面的代码
//connection to db
define('DB_HOST', 'localhost');
define('DB_NAME', 'dbname');
define('DB_USERNAME','root');
define('DB_PASSWORD','');
$con = mysqli_connect(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);
if( mysqli_connect_error()) echo "Failed to connect to MySQL: " . mysqli_connect_error();
//get search term
$searchTerm = $_GET['term'];
$result = mysqli_query($con, "SELECT `location` FROM `locations` WHERE TRIM(location) LIKE '%".($_GET['term'])."%'");
$data = array();
while ($row = mysqli_fetch_assoc($result))
{
$name = str_replace($searchTerm, "<span style='background-color:pink;'>$searchTerm</span>", $row['location']);
array_push($data, $name);
}
//return json data
echo json_encode($data);
假设我在搜索makutano这个词 我最终得到如下所示的结果:
我希望它只会突出显示makutano,但它并没有按预期工作。
如果我删除 str_replace($searchTerm, "<span style='background-color:pink;'>$searchTerm</span>" 代码,我的结果将如下图所示
我的数据库位置看起来像
我的代码哪里出错了?任何帮助将不胜感激
【问题讨论】:
-
您将信息推送到 JSON 格式,这并不是显示信息的真正好格式。
-
@JayBlanchard 我应该怎么做。我在这方面不太擅长
-
通过 javascript 而不是 php 在您的页面上执行此操作。
-
您可以连接结果然后回显,而不是 JSON。
-
@JorgeCampos 我可以使用哪个 javascript 代码?
标签: php highlight str-replace