Javascript.RU

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

Поставил поиск по сайту и всретился с проблемой.
Доброго времени суток, в ниже указаном скрипте реализован поиск по сайту. Объясните пожалуйста как открыть результаты поиска в новом окне с моим дизайном, search.php создал, но как перейти на него... 6 день сижу не могу раздуплится. буду рад если поможете. спасибо.


$(document).ready(function(){ 
	      
	   var config = { 
	        siteURL     : 'site.ru',   // Сайт, на котором используется поиск 
	        searchSite  : true, 
	        type        : 'web', 
	        append      : false, 
	        perPage     : 8,            // Google допускает использовать максимум 8 
	        page        : 0             // Первая страница 
	    } 
	     
	    // Маленькая стрелка, которая отмечает иконку типа поиска: 
	    var arrow = $('<span>',{className:'arrow'}).appendTo('ul.icons'); 
	      
	    $('ul.icons li').click(function(){ 
	        var el = $(this); 
	          
	        if(el.hasClass('active')){ 
	            // Иконка уже активна, выходим 
	            return false; 
	        } 
	          
	        el.siblings().removeClass('active'); 
	        el.addClass('active'); 
	          
	        // Перемещаем стрелку под данную иконку 
	        arrow.stop().animate({ 
	            left        : el.position().left, 
	            marginLeft  : (el.width()/2)-4 
	        }); 
	          
	        // Устанавливаем тип поиска 
	        config.type = el.attr('data-searchType'); 
	        $('#more').fadeOut(); 
	    }); 
	      
	    // Устанавливаем домен сайта как метку для первой радио кнопки: 
	    $('#siteNameLabel').append(' '+config.siteURL); 
	      
	    // Маркируем радио кнопку поиска по сайту как активную: 
	    $('#searchSite').click();    
	      
	    // Маркируем иконку веб поиска как активную: 
	    $('li.web').click(); 
	      
	    // Устанавливаем фокус ввода в поле для ввода текста: 
	    $('#s').focus(); 
	  
	    $('#searchForm').submit(function(){ 
	        googleSearch(); 
	        return false; 
	    }); 
	      
	    $('#searchSite,#searchWeb').change(function(){ 
	        // Ловим событие click на одной из радио кнопок. 
	        // config.searchSite примет значение либо true либо false. 
	          
	        config.searchSite = this.id == 'searchSite'; 
	    });
function googleSearch(settings){ 
	    // Если никаких аргументов не было передано функции, 
	    // то будут использоваться значения по умолчанию из объекта конфигурации: 
	      
	    settings = $.extend({},config,settings); 
	    settings.term = settings.term || $('#s').val(); 
	      
	    if(settings.searchSite){ 
	        // Используем  опцию для Google site:example.com для ограничения поиска 
	        // по определенному домену: 
	        settings.term = 'site:'+settings.siteURL+' '+settings.term; 
	    } 
	      
	    // URL API Google AJAX Search 
	    var apiURL = 'http://ajax.googleapis.com/ajax/services/search/'+settings.type+'?v=1.0&callback=?'; 
	    var resultsDiv = $('#resultsDiv');
	    
	      
	    $.getJSON(apiURL,{q:settings.term,rsz:settings.perPage,start:settings.page*settings.perPage},function(r){ 
	          
	        var results = r.responseData.results; 
	        $('#more').remove(); 
	          
	        if(results.length){ 
	              
	            // Если результат был возвращен, добавляем его к элементу div pageContainer, 
	            // который затем добавлет его к #resultsDiv: 
	              
	            var pageContainer = $('<div>',{className:'pageContainer'}); 
	              
	            for(var i=0;i<results.length;i++){ 
	                // Создаем новый объект результата и запускаем его метод toString: 
	                pageContainer.append(new result(results[i]) + ''); 
	            } 
	              
	            if(!settings.append){ 
	                // Данный код выполняется, если запускается новый поиск  
	                // вместо нажатия на кнопку _Показать еще_: 
	                resultsDiv.empty(); 
	            } 
	              
	            pageContainer.append('<div class="clear"></div>') 
	                         .hide().appendTo(resultsDiv) 
	                         .fadeIn('slow'); 
	              
	            var cursor = r.responseData.cursor; 
	              
	            // Проверяем, имеются ли еще страницы с результатами поиска,  
	            // и определяем, показывать ли кнопку _Показать еще_: 
	              
	            if( +cursor.estimatedResultCount > (settings.page+1)*settings.perPage){ 
	                $('<div>',{id:'more'}).appendTo(resultsDiv).click(function(){ 
	                    googleSearch({append:true,page:settings.page+1}); 
	                    $(this).fadeOut(); 
	                }); 
	            } 
	        } 
	        else { 
	              
	            // В данном поиске не было найдено ничего. 
	              
	            resultsDiv.empty(); 
	            $('<p>',{className:'notFound',html:'По вашему запросу ничего не найдено!'}).hide().appendTo(resultsDiv).fadeIn(); 
	        } 
	    }); 
	}
    function result(r){ 
	          
	        // Это определение класса. Объект данного класса создается для каждого результата поиска. 
	        // Разметка генерируется методом .toString(). 
	          
	        var arr = []; 
	          
	        // GsearchResultClass передается из API Google 
	        switch(r.GsearchResultClass){ 
	  
	            case 'GwebSearch': 
	                arr = [ 
	                    '<div class="webResult">', 
	                    '<h2><a href="',r.unescapedUrl,'" target="_blank">',r.title,'</a></h2>', 
	                    '<p>',r.content,'</p>', 
	                    '<a href="',r.unescapedUrl,'" target="_blank">',r.visibleUrl,'</a>', 
	                    '</div>'
	                ]; 
	            break; 
	            case 'GimageSearch': 
	                arr = [ 
	                    '<div class="imageResult">', 
	                    '<a target="_blank" href="',r.unescapedUrl,'" title="',r.titleNoFormatting,'" class="pic" style="width:',r.tbWidth,'px;height:',r.tbHeight,'px;">', 
	                    '<img src="',r.tbUrl,'" width="',r.tbWidth,'" height="',r.tbHeight,'" /></a>', 
	                    '<div class="clear"></div>','<a href="',r.originalContextUrl,'" target="_blank">',r.visibleUrl,'</a>', 
	                    '</div>'
	                ]; 
	            break; 
	            case 'GvideoSearch': 
	                arr = [ 
	                    '<div class="imageResult">', 
	                    '<a target="_blank" href="',r.url,'" title="',r.titleNoFormatting,'" class="pic" style="width:150px;height:auto;">', 
	                    '<img src="',r.tbUrl,'" width="100%" /></a>', 
	                    '<div class="clear"></div>','<a href="',r.originalContextUrl,'" target="_blank">',r.publisher,'</a>', 
	                    '</div>'
	                ]; 
	            break; 
	            case 'GnewsSearch': 
	                arr = [ 
	                    '<div class="webResult">', 
	                    '<h2><a href="',r.unescapedUrl,'" target="_blank">',r.title,'</a></h2>', 
	                    '<p>',r.content,'</p>', 
	                    '<a href="',r.unescapedUrl,'" target="_blank">',r.publisher,'</a>', 
	                    '</div>'
	                ]; 
	            break; 
	        } 
	          
	        // Метод toString. 
	        this.toString = function(){ 
	            return arr.join(''); 
	        } 
	    } 
	      
	      
	});

Последний раз редактировалось Toll, 17.10.2011 в 02:03.
Ответить с цитированием
  #2 (permalink)  
Старый 17.10.2011, 01:18
Новичок на форуме
Отправить личное сообщение для Toll Посмотреть профиль Найти все сообщения от Toll
 
Регистрация: 17.10.2011
Сообщений: 8

ну сейчас он работает там куда я вставлю div
Ответить с цитированием
  #3 (permalink)  
Старый 17.10.2011, 01:26
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

0) незачем дублировать свои темы в несколько разделов.
так вам быстрее не ответят. скорее наоборот
Ответить с цитированием
  #4 (permalink)  
Старый 17.10.2011, 01:26
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

1)
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #5 (permalink)  
Старый 17.10.2011, 02:03
Новичок на форуме
Отправить личное сообщение для Toll Посмотреть профиль Найти все сообщения от Toll
 
Регистрация: 17.10.2011
Сообщений: 8

спасибо, буду знать, а с вопросом поможете?

Последний раз редактировалось Toll, 17.10.2011 в 02:16.
Ответить с цитированием
  #6 (permalink)  
Старый 17.10.2011, 08:52
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Сообщение от Toll
а с вопросом поможете?
Сделай небольшей тестовый пример и расскажи нормально что ты в нём хочешь сделать...
А такие портянки никому не нужны.
Ответить с цитированием
  #7 (permalink)  
Старый 17.10.2011, 12:09
Новичок на форуме
Отправить личное сообщение для Toll Посмотреть профиль Найти все сообщения от Toll
 
Регистрация: 17.10.2011
Сообщений: 8

эммм. Вообще данный скрипт реализует поиск по сайту, но результаты выводятся в тоже поле <div>, куда я его вставлю в php коде страницы, меня это не устраивает(на главной странице, index.php). хочется вывод результатов поиска в окно search.php(лучше переход по ссылке на site.ru/search.php), как я понимаю наполнение search.php должно быть такое-же как и в index.php. а вот код js надо изменить.
код php который отвечает за поиск.
<div id="page">
	<h1>Поиск по сайту с использованием Google</h1>
	<form id="searchForm" method="post">
	<fieldset>
	<input id="s" type="text" />
	<input type="submit" value="Submit" id="submitButton" />
	<div id="searchInContainer">
	<input type="radio" name="check" value="site" id="searchSite" checked />
	<label for="searchSite" id="siteNameLabel">Поиск по</label>
	<input type="radio" name="check" value="web" id="searchWeb" />
	<label for="searchWeb">Поиск в Интернет</label>
	</div>
	<ul class="icons">
	<li class="web" title="Страницы" data-searchType="web">Страницы</li>
	<li class="images" title="Изображения" data-searchType="images">Изображения</li>
	<li class="news" title="Новости" data-searchType="news">Новости</li>
	<li class="videos" title="Видео" data-searchType="video">Видео</li>
	</ul>
	</fieldset>
	</form>
	<div id="resultsDiv"></div>
	</div>
	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
	<script src="script.js"></script>

спасибо.
Ответить с цитированием
  #8 (permalink)  
Старый 17.10.2011, 20:49
Новичок на форуме
Отправить личное сообщение для Toll Посмотреть профиль Найти все сообщения от Toll
 
Регистрация: 17.10.2011
Сообщений: 8

Кто-то поможет?
Ответить с цитированием
  #9 (permalink)  
Старый 17.10.2011, 21:43
Новичок на форуме
Отправить личное сообщение для Toll Посмотреть профиль Найти все сообщения от Toll
 
Регистрация: 17.10.2011
Сообщений: 8

BOT 6JIUH.
Ответить с цитированием
  #10 (permalink)  
Старый 17.10.2011, 21:56
Новичок на форуме
Отправить личное сообщение для Toll Посмотреть профиль Найти все сообщения от Toll
 
Регистрация: 17.10.2011
Сообщений: 8

http://ruseller.com/lessons.php?rub=32&id=715 вот ссылка на поиск.

Последний раз редактировалось Toll, 17.10.2011 в 22:04.
Ответить с цитированием
Ответ


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

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