[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: ajax поиск и json
Rigel
При вводе символа в строку поиска, должен происходить поиск по подгруженному файлу json, но почему-то поиск идет, если вводишь уже второй символ.
пример тут для проверки можно ввести символы a, b, c, d, e, f, g, h

Почему при вводе 1го символа не происходит поиск и как можно грамотно "сбросить результаты при вводе нового символа в строку?
Спасибо, если кто разберется :)
<script type="text/javascript">
$(document).ready(function(){
var res = [];
$('#search').keyup(function(){
$('#results').children().remove();
var searchStr = $('#search').val();
var searchStrL = searchStr.length;
$.getJSON('ajax/example.json', {}, function(json){
$.each(json, function(k, v) {
$.each(v, function() {
if(this.name.substr(0, searchStrL) == searchStr)
res.push(this.name);
});
});
});
$.each(res, function(index, value) {
$('#results').append('<li class="result-li"><a href="search.php?q='+value+'">'+value+'</li>');
});
});
});
</
script>
<
input type="text" id="search" />
<
input type="button" value="Найти" />
<
ul id="results" />

{
"person":[
{
"name":"cat",
"age":"21"
},
{
"name":"cucumber",
"age":"21"
},
{
"name":"dog",
"age":"23"
},
{
"name":"bear",
"age":"23"
},
{
"name":"giraffe",
"age":"23"
},
{
"name":"apple",
"age":"23"
},
{
"name":"ear",
"age":"23"
},
{
"name":"fruit",
"age":"23"
},
{
"name":"hare",
"age":"23"
}
]
}




Спустя 53 минуты, 25 секунд (14.01.2012 - 23:12) redreem написал(а):
мне кажется какая-то хрень с массивом res.
посмотри вот такой вариант скрипта:


$(document).ready(function(){
$('#search').keyup(function(){
$('#results').children().remove();
var searchStr = $('#search').val();
var searchStrL = searchStr.length;
$.getJSON('json.php', {}, function(json){
$.each(json, function(k, v) {
$.each(v, function() {
if(this.name.substr(0, searchStrL) == searchStr) {
$('#results').html = '';
$('#results').append('<li class="result-li"><a href="search.php?q='+this.name+'">'+this.name+'</li>');
}
}
);
});
});
});
});


Спустя 20 минут, 49 секунд (14.01.2012 - 23:33) Rigel написал(а):
redreem
действительно, все из-за массива
Теперь работает, спасибо огромное! huh.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.