Javascript.RU

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

jQuery Autocomplete получить из txt массив или привязка к файлу
Посмотреть код в работе
по ссылке выше можете посмотреть все необходимое...
у меня источник данных - текстовый файл 1.txt
в нем текстовые данные представлены в таком виде:
Один
Два
Три
Четыре
и т.д.
подскажите, где нужно изменить, чтобы данные считывало из файла.... или как второй вариант - записать содержимое всего файла в массив (но там 7к записей, будет большая нагрузка на сервак)
Ответить с цитированием
  #2 (permalink)  
Старый 02.09.2013, 17:23
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

Сообщение от carry
там 7к записей, будет большая нагрузка на сервак
положите записи в бд и вычитывайте оттуда
Ответить с цитированием
  #3 (permalink)  
Старый 02.09.2013, 17:50
Интересующийся
Отправить личное сообщение для carry Посмотреть профиль Найти все сообщения от carry
 
Регистрация: 02.09.2013
Сообщений: 12

я не хочу лишний раз дергать бд просто
для этого я создал текстовый файлик
Ответить с цитированием
  #4 (permalink)  
Старый 02.09.2013, 17:59
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

вычитать файл в переменную можно так
var jqxhr = $.get( "1.txt", function())
.done(function(data) { 
	//файл будет в переменной data
	
})
.fail(function( jqxhr, textStatus, error ) {
	var err = textStatus + ', ' + error;
	console.log( "Request Failed: " + err);
});

Последний раз редактировалось animhotep, 02.09.2013 в 18:10.
Ответить с цитированием
  #5 (permalink)  
Старый 02.09.2013, 18:48
Интересующийся
Отправить личное сообщение для carry Посмотреть профиль Найти все сообщения от carry
 
Регистрация: 02.09.2013
Сообщений: 12

спасибо, сделал по аналогии, как было
что-то еще нужно поменять - так не работает

по идее нужно внести в массив данные по одному, и каждый элемент начинающийся с новой строки как новый элемент массива
у меня есть рабочий код, который берет данные прямо из текстового файла:
$(document).ready(function()
{   

     $("#file").autocomplete("autocomplete.dat", {
      autoFill:false,
      cacheLength:2,
      delay:1,
      matchCase:false,
      matchContains:false,		
      matchSubset:false,			
      minChars:2,
      mustMatch:false,
      scroll:false,
      maxItemsToShow:30
  });

но в новом коде такое вариант не канает, я не знаю где поменять (менял по аналогии и не работает)
<script language="javascript">
 var jqxhr = $.get( "1.txt", function())
.done(function(data) {
})
      jqxhr.sort();

      function monkeyPatchAutocomplete() {
      var oldFn = $.ui.autocomplete.prototype._renderItem;
          $.ui.autocomplete.prototype._renderItem = function( ul, item) {
              var re = new RegExp("^" + this.term, "i") ;
              var t = item.label.replace(re,"<span style='font-weight:bold;color:red;'>" + this.term + "</span>");
              return $( "<li></li>" )
                  .data( "item.autocomplete", item )
                  .append( "<a>" + t + "</a>" )
                  .appendTo( ul );
          };
      }
      $(document).ready(function() {
          monkeyPatchAutocomplete();
          $("#input1").autocomplete({
 
              source: function(req, responseFn) {
                  addMessage("Поск: '" + req.term);
                  var re = $.ui.autocomplete.escapeRegex(req.term);
                  var matcher = new RegExp( "^" + re, "i" );
                  var a = $.grep(jqxhr, function(item,index){
                      //addMessage("&nbsp;&nbsp;sniffing: '" + item + "'<br/>");
                      return matcher.test(item);
                  });
                  addMessage("Количество: " + a.length + " элемента(ов)");
                  responseFn( a );
              },

              select: function(value, data){
                  if (typeof data == "undefined") {
                      addMessage('Количество: ' + value);
                  }else {
                      addMessage('Вы выбрали: ' + data.item.value);
                  }
              }
          });
      });

    function addMessage(msg){
	$('#msgs').empty();
        $('#msgs').append(msg);
    }
</script>
Ответить с цитированием
  #6 (permalink)  
Старый 02.09.2013, 18:53
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

дык тогда get не нужен, пишите
забирайте через .autocomplete("1.txt", {
Ответить с цитированием
  #7 (permalink)  
Старый 02.09.2013, 19:00
Интересующийся
Отправить личное сообщение для carry Посмотреть профиль Найти все сообщения от carry
 
Регистрация: 02.09.2013
Сообщений: 12

в примере кода выше добавляю в 20-ю строку

$("#input1").autocomplete("1.txt",{

но не работает
Ответить с цитированием
  #8 (permalink)  
Старый 02.09.2013, 19:21
Интересующийся
Отправить личное сообщение для carry Посмотреть профиль Найти все сообщения от carry
 
Регистрация: 02.09.2013
Сообщений: 12

все нарыл как переводить в массив
var cardRules = new Array();
    $.get('autocomplete.dat', function(data){
            cardRules = data.split('\n');
            console.log(cardRules);
        });

теперь все работает вроде
Ответить с цитированием
  #9 (permalink)  
Старый 02.09.2013, 19:49
Интересующийся
Отправить личное сообщение для carry Посмотреть профиль Найти все сообщения от carry
 
Регистрация: 02.09.2013
Сообщений: 12

но, мне интересно как из файла вытянуть в моем случае
м.б. кто подскажет
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery - объект или функция? jazzz13 jQuery 8 16.08.2011 04:01
Найти проблему с jQuery или писать js? Saladdin Элементы интерфейса 0 17.03.2011 17:02
Как в jQuery получить доступ к фрейму или самому верхнему окну? Neokortex jQuery 7 20.12.2010 10:38
Игра орел или решка на jquery. В любом случаи выводит вы проиграли! Dimaz jQuery 4 25.12.2009 15:04
jquery - Как получить полный путь? kirill.adw jQuery 5 20.11.2009 17:40