Как создать форму поиска, которая будет искать введенный термин внутри файла JSON?Как искать в файле JSON?
Таким образом, если поисковый запрос равен названию внутри объекта местоположения, он должен вернуть эту информацию об объекте. Если совпадения нет, дать обратную связь с пользователем, что есть никакие пункты не найдены
Я создал поиска вход:
<form action="" method="get">
<input id="search" type="text" placeholder="Search term">
<input type="submit" class="button">
</form>
Моя JSON выглядит следующим образом:
{
"title": "Locations",
"locations": [
{
"title": "New York",
"url": "api/newyork.js"
},{
"title": "Dubai",
"url": "api/dubai.js"
},{
"title": "Netherlands",
"url": "api/netherlands.js"
},{
"title": "Lanzarote",
"url": "api/lanzarote.js"
},{
"title": "Italy",
"url": "api/italy.js"
}
]
}
Update:
Я придумал следующее, используя jQuery:
$("#search").change(function() {
var arrival = $(this).val();
$.getJSON("api/videoData.js")
.done(function(data) {
// update your ui here
console.dir(data.pages);
var dataArr = data.pages;
// Iterate over each element in the array
for (var i = 0; i < dataArr.length; i++){
// look for the entry with a matching `code` value
if (dataArr[i].title == arrival){
// we found it
console.log(dataArr[i].title);
} else {
console.log('Houston, we have a problem');
}
}
}).fail(function(data) {
// handle error here
console.log('no results found');
});
});
Это работает, только его следует вводить точно так же, как и в JSON. Итак, когда вы ищете «Италия», и вы используете строчный тип, он не найдет объект. Также он не будет вводить никаких записей при поиске, например: ne
. Я хотел бы получить Нидерланды и Нью-Йорк в качестве результатов поиска.
вы пытались любой Javascript себя? Если да, то укажите код – depperm
@ depperm, еще нет. Я не знаю, как получить значение, когда пользователь нажимает кнопку отправки, что будет искать этот термин. – Caspert
Для нижнего и частичного совпадений просто скажите: _.startsWith (dataArr [i] .title. toLowerCase(), arrival.toLowerCase()) – Richard