X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Помогите исправить код
oduvan4ik
oduvan4ik
Topic Starter сообщение 20.7.2008, 20:57; Ответить: oduvan4ik
Сообщение #1


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

<html>
<head>
<title>WOweb.ru - Scripts - JavaScript - Site Search</title>
<META http-equiv="Content-Type" content="text/html; charset=windows-1251">
<META NAME="description" CONTENT="Коллекции CGI, PHP, JavaScript скриптов, Java апплеты, огромное количество документации по разным языкам программирования, анимированные гифы, фоны, полезные программы, форум, ссылки по теме.">
<META NAME="keywords" CONTENT="perl scripts, perl, cgi scripts, cgi, перл, java, java scripts, веб-программирование, web-programming,  html,  каталог ссылок, документация по веб-программированию, cgi скрипты, java скрипты, игры, java апплеты,  апплеты, гифы, скрипты, скрипт, книги по веб-программированию, форум по perl, CGI, Perl, script, HTML">
<Style>
   A:Link{ Color: #000000; Text-decoration: underline}
   A:Visited{ Color: #000000; Text-decoration: underline}
   A:Hover{ Color: #000000; Text-decoration: none}
td, body {font-family: verdana, arial, helvetica; font-size:11px;}
</Style>

<!-- HEAD START HERE -->

<script LANGUAGE="JavaScript">
<!-- Original:  Dion (biab@iinet.net.au) -->
<!-- Web Site:  http://www.iinet.net.au/~biab -->


<!-- Begin
var item = new Array();

/* Here is where all the magic happens.
    Just enter as many additional pages that
    that you want to search, then fill in the
    additional listings for each page.
*/

// "Page Name","path","Page Title","Many,Key,Words","Descriptive Comments"

c=0; item[c]=new Array("index.html","","DemoSite","index,main,start,home,front","Demonstration search engine data about an imagined but probable internet site.");
c++; item[c]=new Array("about.htm","","About Me","about,author,contact,email,who","Contact details and general information about the creator of the site and what the site is about.");
c++; item[c]=new Array("links.htm","","Links page","links,more,where,similar,friends","Links to my favourite sites which I find interesting. Other friends sites which have similar interests to my own.");
c++; item[c]=new Array("main.htm","main/","Main Page","content,main,focus","The main part of my site which contains what you have come to see. Lots of stuff like that and more great things. All in a sub directory.");
c++; item[c]=new Array("logo.jpg","main/images/","Link Logo","link,image,logo,graphic","The logo.jpg is just a small image which you can place on your site as a link to me. It's in a second level subdirectory.");
c++; item[c]=new Array("","http://www.boom.cwx.ru","boom 2.0","каталог сайтов,link,image,logo,graphic","Новый каталог сайтов");
c++; item[c]=new Array("","http://www.boom.cwx.ru","boom 2.0","каталог сайтов,link,image,logo,graphic","Новый каталог сайтов");
c++; item[c]=new Array("","http://www.boom.cwx.ru","boom 3.0","каталог","Новый каталог сайтов");
c++; item[c]=new Array("","http://www.boom.cwx.ru","boom 4.0","кат","Новый каталог сайтов");
page="<html><head><title>Search Results</title></head><body bgcolor='white'><left><table border=0 cellspacing=10 width=100%>";


function search(frm) {
win = window.self;
win.document.write(page);

txt = frm.srchval.value.split(" ");
fnd = new Array(); total=0;
for (i = 0; i < item.length; i++) {
fnd[i] = 0; order = new Array(0, 4, 2, 3);
for (j = 0; j < order.length; j++)
for (k = 0; k < txt.length; k++)
if (item[i][order[j]].toLowerCase().indexOf(txt[k]) > -1 && txt[k] != "")
fnd[i] += (j+1);
}
for (i = 0; i < fnd.length; i++) {
n = 0; w = -1;
for (j = 0;j < fnd.length; j++)
if (fnd[j] > n) { n = fnd[j]; w = j; };
if (w > -1) total += show(w, win, n);
fnd[w] = 0;
}

win.document.write("</table>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Total found: "+total+"<br></body></html>");
win.document.close();
}
function show(which,wind,num,nom,n) {
n=1;
nom=which-4;
link = item[which][1] + item[which][0];
line = "<tr><td width=10 valign=top>"+nom+"</td><td><a href='"+link+"'>"+item[which][2]+"</a> Score: "+num+"<br>";
line += item[which][4] + "<br>"+link+"</td></tr>";
wind.document.write(line);
return n;
}
//  End -->
</script>


<!-- HEAD END HERE -->




</head>
<body bgcolor="#EDEDED" text="#000000" link="#000000" topmargin="0" leftmargin="0">
<center>

<!-- BODY START HERE -->

<form method=get action="java script:void(0)" onsubmit="search(this); return false;">
<tr><td><input type=text name=srchval value=""><input type=submit value="Search"></td></tr>
</form>

<!-- BODY END HERE -->






</body>
</html>
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
oduvan4ik
oduvan4ik
Topic Starter сообщение 20.7.2008, 22:15; Ответить: oduvan4ik
Сообщение #2


а еще чтобы в верху отображалось количество ссылок на странице например 1-10 10-20 и запрос ( результаты 1-10 по запросу google ) - что то подобное

и неплохо если конечно можно сделать отобразить время запроса
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 20.7.2008, 23:56; Ответить: ZiTosS
Сообщение #3


Вам легче использовать SOAP-клиент, для обращаения к Google серверу поиска, у них есть для этого своя API
Вот посмотрите тут http://code.google.com/more/#products-featured-android
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
oduvan4ik
oduvan4ik
Topic Starter сообщение 20.7.2008, 23:57; Ответить: oduvan4ik
Сообщение #4


просто я хочу изменить код под их дизайн
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 21.7.2008, 0:10; Ответить: ZiTosS
Сообщение #5


Это вам не только дизайн придётся править... Тут придётся проделать очень много работы с кодом! Я вам уже предложил вариант... Тока нужна поддержка php_soap.dll у сервера
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
oduvan4ik
oduvan4ik
Topic Starter сообщение 21.7.2008, 10:34; Ответить: oduvan4ik
Сообщение #6


ну ладно а можно хотя бы страницы сделать ???
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 21.7.2008, 12:21; Ответить: ZiTosS
Сообщение #7


Вот вам PHP класс постраничного навигатора... Посмотрите как он сложен. И вы думаете что здесь надо вставить 2-3 строчки?
<?php
////////////////////////////////////////////////////////////////////
class pages{
    //data members
    var $pagename;
    var $totalpages;
    var $recordsperpage;
    var $maxpagesshown;
    var $currentstartpage;
    var $currentendpage;
    var $currentpage;
    //first and last inactive
    var $firstinactivespan;
    var $lastinactivespan;    
    //must match $_GET['offset'] in calling page
    var $firstparamname="p";
    //use as "&name=value" pair for getting
    var $params;
    //text for navigation
    var $strfirst = "[В начало]";
    var $strlast = "[В конец]";
  //for error reporting
    var $errorstring;    

   function pages($pagename, $totalrecords, $recordsperpage, $recordoffset, $maxpagesshown=4){
    $this->pagename=$pagename;
      $this->recordsperpage=$recordsperpage;    
        $this->maxpagesshown=$maxpagesshown;
        //already urlencoded
    if(!$this->checkRecordoffset($recordoffset, $recordsperpage)){
       echo $this->errorstring;
       exit;
    }
      $this->setTotalPages($totalrecords, $recordsperpage);
        $this->calculateCurrentPage($recordoffset, $recordsperpage);
        $this->createInactiveSpans();    
        $this->calculateCurrentStartPage();
        $this->calculateCurrentEndPage();
  }

   function setInactiveSpanName($name){
      $this->inactivespanname=$name;
        //call function to rename span
        $this->createInactiveSpans();    
  }

   function getInactiveSpanName(){
      return $this->inactivespanname;
  }

   function setPageDisplayDivName($name){
      $this->pagedisplaydivname=$name;        
  }

   function getPageDisplayDivName(){
      return $this->pagedisplaydivname;
  }

   function setDivWrapperName($name){
      $this->divwrappername=$name;        
  }

   function getDivWrapperName(){
      return $this->divwrappername;
  }

   function setFirstParamName($name){
      $this->firstparamname=$name;        
  }

   function getFirstParamName(){
      return $this->firstparamname;
  }

     function getNavigator(){
        //wrap in div tag
        $strnavigator= "<div>";
        //loop through displayed pages from $currentstart
        $strnavigator.=$this->getPageNumberDisplay();
        for($x=$this->currentstartpage;$x<$this->currentendpage;$x++){
            //make current page inactive
            if($x==$this->currentpage){
                $strnavigator.= " <span><b>";
                $strnavigator.= $x+1;
                $strnavigator.= "</b></span> ";
            }else{
                $strnavigator.= $this->createLink($x, $x+1);
            }
        }
        $strnavigator.="<br>";
        //output movefirst button        
        if($this->currentpage == 0){
            $strnavigator.=$this->firstinactivespan;            
        }else{
            $strnavigator.= $this->createLink(0, $this->strfirst);
        }
        $strnavigator.=" <b>: :</b> ";
        //move last button
        if($this->currentpage==$this->totalpages-1){
            $strnavigator.= $this->lastinactivespan;            
        }else{
            $strnavigator.=$this->createLink($this->totalpages -1, $this->strlast);
        }
        $strnavigator.= "</div>";        
        return $strnavigator;
    }

     function createLink($offset, $strdisplay ){
        $strtemp= "<a href=\"?$this->pagename&$this->firstparamname=";
        $strtemp.= $offset;
        $strtemp.= "$this->params\">$strdisplay</a>\n";
        return $strtemp;
    }

     function getPageNumberDisplay(){
        $str= "<span>Страницы ($this->totalpages) &rarr; </span>";
        return $str;
    }

   function setTotalPages($totalrecords, $recordsperpage){
      $this->totalpages=ceil($totalrecords/$recordsperpage);
  }

     function checkRecordoffset($recordoffset, $recordsperpage){
        $bln=true;
        //if recordoffset=0 won't show error
        if($recordoffset%$recordsperpage!=0){
            $this->errorstring="Error - Offset not a multiple of records per page.";
            $bln=false;    
        }
        return $bln;
    }
    
     function calculateCurrentPage($recordoffset, $recordsperpage){
        $this->currentpage=$recordoffset/$recordsperpage;
    }

     function createInactiveSpans(){
        $this->lastinactivespan="<span>$this->strlast</span>\n";
        $this->firstinactivespan="<span>$this->strfirst</span>\n";
    }

     function calculateCurrentStartPage(){
        $this->currentstartpage = $this->currentpage - $this->maxpagesshown;
        if($this->currentstartpage < 0)
            $this->currentstartpage = 0;    
    }

     function calculateCurrentEndPage(){
        $this->currentendpage = $this->currentpage + $this->maxpagesshown;
        if($this->currentendpage > $this->totalpages)
            $this->currentendpage = $this->totalpages;    
    }
}
?>

А вот я его использую
$perpages = 10; //Количество элементов в постраничном выводе
$page = @intval($_GET['p']);
  if (empty($page)){ // Если отсутствует номер страницы в GET
    $page = 1;
    $record = 0;
  } else {
    $record = $page * $perpages; // Номер записи, с которой начинаем выводить
  }

Вот SQL запрос для вывода из БД с LIMIT
SELECT * FROM articles WHERE id_cat=".intval($_GET['id_cat'])." AND is_take=1 ORDER BY date DESC LIMIT $record, $perpages


А вот оснавная часть...
$totalrecords = $rs->getUnlimitedNumberRows(); // общее количество записей
  $numpages = ceil($totalrecords/$perpages); // Общее количество страниц
  if($numpages > 1){ // Если кол-во страниц > 1
  
  /*Постраничный навигатор*/

    $nav = new pages("act=article&id_cat=".intval($_GET['id_cat']),$totalrecords, $perpages, $record, 3); // создаём объект-навигатор и передаём ему первоначальные параметры
    echo $nav->getNavigator(); // Выводим навигатор на печать
  }



Поэтому я вам и советую воспользоваться SOAP системой, там всё очень просто настраивается.
И ещё вопрос тогда... Если вы хотите выодить постранично... Скажите мне пожайлуста, откуда вы берёте информацию, которую хотите выводить постранично?
Просто на JS подобных вещей не делают, если только с использованием AJAX-технологий.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
oduvan4ik
oduvan4ik
Topic Starter сообщение 22.7.2008, 10:30; Ответить: oduvan4ik
Сообщение #8


из текстового файла
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 22.7.2008, 11:00; Ответить: ZiTosS
Сообщение #9


Код конечно просто ужасный... Я понял его технологию... Но чтобы разделить найденное на страницы, здесь нужно будет переписать всё 100 раз...
Я так понял, данные вы биоётне не из текстового файла... А прямо из массива item, и делаете по нему поиск.
Это же не вы писали?! Просто код ну времён так этак 90-х годов, когда ещё не знали поиска по шаблону, по вхождению... А так же не знали что такое узел(node), как добавить найденное в div... Я просто охренел от такого тупого кода ;)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
oduvan4ik
oduvan4ik
Topic Starter сообщение 23.7.2008, 21:58; Ответить: oduvan4ik
Сообщение #10


да из массива ... я перепутал просто ... хм какой скрипт был такой и скачал ))) а есть ссылка на похожий скрипт ???
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Помогите вспомнить рекламного бота Телеграм для обмена рекламой
0 Mixatraider 692 21.2.2024, 23:42
автор: Mixatraider
Открытая тема (нет новых ответов) Посоветуйте партнерку, что бы исправить ситуацию
11 Maneja 3686 28.9.2021, 23:36
автор: NikosTM
Открытая тема (нет новых ответов) Почистить код на сайте
1 Timka 1090 2.1.2021, 1:13
автор: 0pium
Открытая тема (нет новых ответов) Помогите рещить проблему с монитором.
Почему низкое разрешение при подключении монитора через displayport?
0 Levels 1695 11.12.2020, 0:48
автор: Levels
Открытая тема (нет новых ответов) Исправить проблему в сайте, требуется помощь программиста
1 woolf 1142 14.10.2020, 14:47
автор: WoWeb


 



RSS Текстовая версия Сейчас: 29.3.2024, 12:36
Дизайн