【发布时间】:2019-05-30 00:02:02
【问题描述】:
我正在尝试对我的站点进行站点搜索,以便用户可以通过键入一些单词来搜索某些页面,并将它们重定向到 myDomain 的相应 url。我正在尝试为我使用 xml 文件的帮助而不是 mysql 数据库来快速完成自动完成。我已将网页的所有标题和相应的 url 放在该 xml 文件中。以下是我的一段代码。
我的 HTML 代码:
<html>
<head>
<title>..</title>
<link href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" />
<script src = "https://code.jquery.com/jquery-1.10.2.js"></script>
<script src = "https://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
</head>
<body>
<script>
$(document).ready(function() {
var myArr = [];
$.ajax({
type: "GET",
url: "categories.xml", // change to full path of file on server
dataType: "xml",
success: parseXml,
complete: setupAC,
failure: function(data) {
alert("XML File could not be found");
}
});
function parseXml(xml)
{
//find every query value
$(xml).find("category").each(function()
{
myArr.push($(this).attr("label"), $(this).attr("url"));
});
}
function setupAC() {
$("input#searchBox").autocomplete({
source: myArr,
minLength: 2,
select: function(event, ui) {
$("input#searchBox").val(ui.item.value);
window.location = ui.item.value
}
});
}
});
</script>
<!-- Code for Search Box -->
<div id="header-search">
<span class="font-select">
<b>Search Page by Typing few charaters:</b>
<form name="search_form" id="searchForm" method="GET" action="#">
<input type="text" id="searchBox" name="searchString" placeholder="Type category to search.."/>
</form>
</span>
</div>
....
</body>
</html>
以下是我的 XML 文件“categories.xml”的内容:
<?xml version="1.0" encoding="UTF-8"?>
<categories>
<category label="AC and Refrigeration" url="url_1.php" />
<category label="Advertising Agencies" url="url_2.php" />
<category label="Aluminum and Fabricator" url="url_3.php" />
<category label="Architects" url="url_4.php" />
<category label="Arm and Ammunition" url="url_5.php" />
<category label="Acupressure and Acupuncture Clinic" url="url_6.php" />
<category label="Astrologers" url="url_7.php" />
<category label="ATM Booths" url="url_8.php" />
<category label="Auto Agency" url="url_9.php" />
</categories>
现在,通过使用上述代码和 xml 文件,我的自动完成功能工作得很好,即如果我输入类别标签的几个字符(在 xml 文件中提到),它会向我显示在搜索中选择的自动完成选项盒子。
但问题是当我最终选择任何一个选项时,它会将我重定向到在搜索框中选择的相同单词的 url,即 xml 文件中的类别标签单词,但我想将其重定向到相应的 url xml文件中url的值。
例如如果我选择了第一个选项“AC and Refrigeration”,它目前正在将我重定向到 url“myDomain.com/AC and Refrigeration”,但我希望它应该将我重定向到 xml 文件的相应 url 值,即“myDomain.com/url_1 .php”。所以请查看这段代码并帮助我实现这一点,因为我尝试了很多事情但无法实现这一点,我在脚本或其他地方的“window.location = ui.item.value”附近遗漏了一些小东西。 在此先感谢 - 请帮助我更改或添加我的代码。 请帮忙....
【问题讨论】:
标签: jquery xml autocomplete url-redirection