Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.02.2013, 12:40
Интересующийся
Отправить личное сообщение для derek Посмотреть профиль Найти все сообщения от derek
 
Регистрация: 22.10.2012
Сообщений: 13

интерактивный поиск с ajax - помогите решить проблему
Добрый день, вообщем в строке поиска вводим информацию и с помощью ajax тут же выводим результаты. все вроде работает но: вводишь первое значение - ждешь ответ загружается. и через пару секунд все что ты ввел - сбрасывается в ответе ajаxa. если дальше вводить то все работает как надо- не могу понять почему сбрасывается
вот ссылка на страницу где можно протестировать
http://mriya-bt.od.ua/newpoisk2.htm
Searching for - главное в этой строке сохраняется что ввел в поиске а
уже при выводе через ajax поиск ""- тут пусто
P.S. поиск по товарам бытовой техники

Последний раз редактировалось derek, 20.02.2013 в 13:02.
Ответить с цитированием
  #2 (permalink)  
Старый 20.02.2013, 13:09
Интересующийся
Отправить личное сообщение для derek Посмотреть профиль Найти все сообщения от derek
 
Регистрация: 22.10.2012
Сообщений: 13

вот код скрипта.хотя ничего особого тут нет
//search
function search(){
var request;
if(window.XMLHttpRequest){
request = new XMLHttpRequest();
} else if(window.ActiveXObject){
request = new ActiveXObject("Microsoft.XMLHTTP");
} else {
return;
}

request.onreadystatechange = function(){
if (request.readyState != 4) return;
if (request.status != 200) {
// обработать ошибку
alert('Ошибка ' + request.status + ': ' + request.statusText);
return;
}

document.getElementById('search-result').innerHTML = request.responseText;

}

var poisk = document.getElementById('searchq').value;
document.getElementById('msg').style.display = "block";
document.getElementById('msg').innerHTML = "Searching for <strong>" + poisk+"";
var params = 'poisk=' + encodeURIComponent(poisk)+'&sid='+Math.random();

request.open ('GET','poisk3.php?'+params, true);
request.send (null);
}
Ответить с цитированием
  #3 (permalink)  
Старый 20.02.2013, 13:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,147

derek,
что то у меня ничего не сбрасываается?
Ответить с цитированием
  #4 (permalink)  
Старый 20.02.2013, 13:41
Интересующийся
Отправить личное сообщение для derek Посмотреть профиль Найти все сообщения от derek
 
Регистрация: 22.10.2012
Сообщений: 13

введите например слово в поиске indesit и подождите немного (до 5 секунд) - и увидите - вначале он найдет то что нужно, а потом сбросит.на кнопку SEARCH не нажимаем - тогда все нормально - ничего не сбрасывает. в дальнейшем поиск будет без кнопки-это сейчас в тестовом режиме она есть

Последний раз редактировалось derek, 20.02.2013 в 13:45.
Ответить с цитированием
  #5 (permalink)  
Старый 20.02.2013, 13:45
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от derek
введите например слово в поиске indesit и подождите немного (до 5 секунд)
В Опере - не сбрасывается, и в FF - тоже
Какой браузер ?
Ответить с цитированием
  #6 (permalink)  
Старый 20.02.2013, 13:47
Интересующийся
Отправить личное сообщение для derek Посмотреть профиль Найти все сообщения от derek
 
Регистрация: 22.10.2012
Сообщений: 13

я проверяю в firefox 18.0, explorer 6.0 история отключена
проверил в опере 12.14 - тоже самое - результат через пару секунд если ничего не нажимать сбрасывается

Последний раз редактировалось derek, 20.02.2013 в 13:49.
Ответить с цитированием
  #7 (permalink)  
Старый 20.02.2013, 13:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,147

derek,
ввёл слово целиком -- никаких сбросов -- а если вводить по букве - конечно будет 7 запросов и когда и в каком порядке они друг друга сотрут конечно неизвестно.запускайте поиск через задержку- вводят - стираем таймер - ставим таймер - ничего не вводят таймер сработал
Ответить с цитированием
  #8 (permalink)  
Старый 20.02.2013, 13:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,147

derek,
примерно так
var timer;
document.getElementById('searchq').onkeydown=function(){
window.clearTimeout(timer)
timer =setTimeout(search,1000);
}
Ответить с цитированием
  #9 (permalink)  
Старый 20.02.2013, 13:54
Интересующийся
Отправить личное сообщение для derek Посмотреть профиль Найти все сообщения от derek
 
Регистрация: 22.10.2012
Сообщений: 13

рони,
у меня все наоборот - если вводить по 1 букве в 1 секунду то все нормально работает а если вводить слова целиком то - результат сбрасывается. насчет таймера - если вводят то стираеим и одновременно ставим таймер?
Ответить с цитированием
  #10 (permalink)  
Старый 20.02.2013, 13:57
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,147

Сообщение от derek
если вводят то стираеим и одновременно ставим таймер?
да
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите плис новичку в ajax urel AJAX и COMET 6 12.01.2013 21:36
History API. Помогите решить проблему InviS Events/DOM/Window 2 16.10.2011 14:34
Помогите решить проблему felixfix Общие вопросы Javascript 4 21.04.2011 12:00
Ajax - быстрый поиск Antant AJAX и COMET 0 01.11.2010 17:18
Помогите настроить Ajax tooltip Jeckerson AJAX и COMET 1 14.08.2009 16:31