На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: ElcnU, ANDLL, fatalist
  
> Поиск в псевдоБД , вроде просто, а не пашет (JS)
    в общих чертах идей такова: т.к. JS с БД не работает, то в файле prodMas.js создается 4 набора данных в виде массивов по следующему принципу:
    ExpandedWrap disabled
       
      var metAr=new Array("Щит рекламный", "Ограждения балконные", "Ограждения парковые");
      ......

    строка и условия поиска задаются из формы одного документа и передаются в другой для анализа... вот текст файла, в котором происходит сравнение и поиск:
    ExpandedWrap disabled
       
      <html>
      <head>
      <title>Результаты поиска</title>
      <script language="JavaScript" type="text/JavaScript" src="scripts/prodMas.js"></script>
      <script language="JavaScript" type="text/javascript">
      <!--
      var ex_url=location.search.substring(1);
      var param = new Array();
      var param = ex_url.split('&');
      var values = new Array();
      for (i=0; i<param.length;i++) {
          var b = param[i].split('=');
          values[b[0]] = unescape(unescape(b[1]));
      }
      var sch=0;
      function FindAll(str, ar, urlst, nazv) {
          for (i=0; i<ar.length; i++) {
              if (str.toUpperCase()==ar[i].toUpperCase()) {
                  sch++;
                  document.writeln('<a href="'+urlst+nazv+'.htm">'+ar[i]+'</a>');
              }
          }
      }
      function FindAny(str, ar, urlst, nazv) {
          var arStr=str.toUpperCase().split(' ');
          for (i=0; i<ar.length; i++) {
              var arAr=ar[i].toUpperCase().split(' ');
              for (j=0; j<arStr.length; j++0) {
                  for (k=0; k<arAr.length; k++) {
                      if (arStr[j]==arAr[k]) {
                          sch++;
                          document.writeln('<a href="'+urlst+nazv+'.htm">'+ar[i]+'</a>');
                      }
                  }
              }
          }
      }
      //-->
      </script>
      </head>
      <body>
      <h1>Результаты поиска</h1>
      <script type="text/javascript" language="JavaScript">
      <!--
      var strURL='http://rmz-prk.land.ru/';
      if (values["fkat"]=='spareparts') var fAr=spAr;
      else if (values["fkat"]=='repair') var fAr=repAr;
           else if (values["fkat"]=='metaldes') var fAr=metAr;
                else var fAr=servAr;
      if (values["ftype"]==1) FindAny(values["ftext"], fAr, strURL, values["fkat"]);
      else FindAll(values["ftext"], fAr, strURL, values["fkat"]);
      if (sch==0) alert('По Вашему запросу ничего не найдено!');
      else alert('По Вашему запросу найдено '+sch+' совпадений');
      //-->
      </script>
      </body>
      </html>

    и вот эта лабуда ничего не выдает, т.е. скрипты не срабатывают. Почему?

    P.S.: понимаю, что лучше было бы анализ проводить посредством indexOf(), но сейчас просто делаю на скорость, потому как времени не особо...
    Сообщение отредактировано: Malicious Babai -
      Может поэтому:
      Цитата
      for (j=0; j<arStr.length; j++0)
        Небольшое замечание: обычно для этих целей (псевдо БД) используют cookies, а не передачу параметров.
          Цитата Trustmaster @ 24.08.04, 16:04
          Небольшое замечание: обычно для этих целей (псевдо БД) используют cookies, а не передачу параметров.

          Кстати а у печенек какая максимальная длинна?
            Обычно она неограничена. Но это может зависеть от браузера.
              Mixxx, спасибо большое... согласен, ошибка глупая (точнее это опечатка получилась), но так всегда - чем больше голову ломаешь, тем проще решение
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0319 ]   [ 15 queries used ]   [ Generated: 27.04.24, 17:40 GMT ]