javascript - 如何制作一个使用javascript搜索网站中特定字段的搜索栏?
问题描述
我正在尝试使用选择标签制作搜索栏。如果有人会点击任何选项,如 Bus driver,那么在评论框中将出现相同文本的字段。我正在使用 JavaScript、PHP 和 HTML 和 CSS。我正在尝试,但它不起作用。我有 index.php 和一个带有两个表的数据库。你也可以给我一个例子的代码。
我用于搜索栏的 javascript 代码:-
<script>
const searchFun = () => {
let select = document.getElementById('select_job');
var x = select.val();
let field = <?= $row['field'] ?>
var y = field.val();
if (x == y) {
document.getElementById("mainContainer").innerHTML = "";
} else {
alert("Sorry no Jobs found")
}
}
</script>
我的搜索条形码:-
<select id="select_job" class="label-field form-control" onkeyup="searchFun()" name="field">
<option value="">Choose your field...</option>
<option>Accountants</option>
<option>Aerospace Engineers</option>
<option> Biologist</option>
<option> Black Belt</option>
<option> Blender</option>
<option> Bookkeeper</option>
<option> Bookseller</option>
<option> Branch Manager</option>
<option> Brand Ambassador</option>
<option> Brand Manager</option>
<option> Budget Analyst</option>
<option> Bus Driver</option>
<option> Business Analyst</option>
<option>Computer User Support Specialists</option>
<option>Computer Systems Analysts</option>
<option>Computer Programmers</option>
</select>
我的评论框代码:-
<div class="biggest-container">
<div id="mainContainer" class="mainContainer-one" class="row justify-content-center">
<div class="rounded bg-light p-3 static" class="position-static" id="cont">
<?php
$sql = "SELECT * FROM comment_table ORDER BY id DESC";
$result = $conn->query($sql);
while ($row = $result->fetch_assoc()) {
?>
<div class="card mb-2 border-secondery" id="myTable">
<div class="card-header bg-secondary py-1 text-light">
<span id="fieldone" class="float-left font-bold fields">Field : <?= $row['field'] ?></span>
<span class="float-right font-bold">On : <?= $row['date_publish'] ?></span>
</div>
<div class="card-body py-2">
<p class="card-text font-bold"> Posted By : <?= $row['name'] ?></p>
<p class="card-text font-bold"><i class="fas fa-map-marker-alt color-light"></i> Location : <?= $row['location'] ?></p>
<p class="card-text font-bold show-read-more"> Description : <?= $row['description'] ?></p>
<p class="card-text font-bold"> E-mail : <?= $row['email'] ?></p>
</div>
<div class="card-footer py-2">
<div class="float-left">
</div>
<div class="float-right">
<a href="action.php?del=<?= $row['id'] ?>" class="text-danger mr-2" onclick="return confirm('Do you want to delete this comment?');" title="Delete"><i class="fas fa-trash"></i></a>
<a href="index.php?edit=<?= $row['id'] ?>" class="text-success" title="Edit"><i class="fas fa-edit"></i></a>
</div>
</div>
</div>
<?php } ?>
</div>
</div>
解决方案
当您使用该<select>
功能时,应使用onchange="searchFun(this)"
而不是触发该功能onkeyup
,该功能用于键盘事件。
然后,选择选项时将触发该函数。
searchFun 的开头也可以更改为:
<script>
const searchFun = (select) => {
var x = select.value();
这看起来也很奇怪:
let field = <?= $row['field'] ?>
var y = field.val();
推荐阅读
- python - 预期的 ASGI 消息“websocket.accept”或“websocket.close”,但得到“http.response.start”
- c++ - 谁在 C++ 中删除了指针(不是用 new 创建的)?
- c# - 在 wpf 中使用联合查询
- jsdoc - 向生成的 JSDoc 文档添加自定义内容
- sqlalchemy - 如何在 SQLAlchemy 中使用 Enum 和模式?
- python - 正则表达式删除多行字符串中的重复短语
- amazon-web-services - AWS 上的负载均衡器和容器
- c# - 有没有办法在 MS 访问中使用 OFFSET 和 FETCH 或在查询中使用任何类似的东西,设置查询必须在 ASP.NET 中使用
- javascript - 将类型 def 添加到数据对象 - Vue
- javascript - 映射数组
进入 Promise 数组问题