Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » JavaScript/HTML: Форма поиска с поисковыми машинами на выбор

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

F1eryG



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мужики подскажите как сделать форму поиска с выподающим меню (в котором будет представлен мой асортимент поисковиков), я вчера весь вечер пытался и что-то у меня невкакую не получается, если не трудно, Вы мне просто исходник дайте а поисковики я сам добавлю, а то весь мой запас знаний иссяк и если незатруднит объясните куда чё вписывать надо, ну очень нужно!




Уточнил название. — Svarga.

Всего записей: 165 | Зарегистр. 22-11-2003 | Отправлено: 19:54 22-11-2003 | Исправлено: Svarga, 04:55 23-11-2003
xntx



хнотик-багоискатель
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
F1eryG
делаешь список поисковиков, потом все это посылается на определенный скрипт, а этот скрипт обрабатывает то, что ты ему сказал и посылает тебя на посиковик через функцию типа header('Location: http://www.google.com/....');

----------
Hello world!

Всего записей: 5169 | Зарегистр. 15-02-2003 | Отправлено: 20:57 22-11-2003
4Life



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вот те выпадающие меню:

Код:
 
<select size="1" name="___">
<option value="1">Yandex</option>
<option value="2">Google</option>
<option value="3">Aport</option>
<option value="4">Meta</option>
</select>
 



----------
▓▓▓Made in Ukraine▓▓▓

Всего записей: 766 | Зарегистр. 05-06-2003 | Отправлено: 20:58 22-11-2003
Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Так, к примеру, можно сделать:
Код:
<script>
var d=document
 
var se=new Array('http://www.yandex.ru/yandsearch?rpt=rad&text=',
'http://www.google.com/search?sourceid=opera&num=0&ie=windows-1251&oe=windows-1251&inlang=ru&filter=0&q=',
'http://astalavista.box.sk/cgi-bin/robot?submit=+search+&srch=',
'http://forum.ru-board.com/forums.cgi?action=filter&forum=35&filterby=topictitle&word=',
'http://www.google.com/search?ie=windows-1251&hl=ru&btnG=%CF%EE%E8%F1%EA+%E2+Google&inlang=ru&filter=0&q=site%3Aforum.ru-board.com+',
'http://www.filesearch.ru/cgi-bin/s?w=a&t=f&m=100&o=n&r=on&s1=&s2=&d=&p=&p2=&x=0&y=0&q=',
'http://meta-ukraine.com/search.asp?q=')
 
function FLS(){return false}
function goSE(){
var query=d.F.Q.value
if(query!=''){
location.href=se[d.F.SE.selectedIndex]+escape(query)}
else{return false}
}
</script>
<form action="javascript:return FLS()" onSubmit="goSE()" name=F>
<select name=SE>
<option>Yandex
<option>Google
<option>Astalavista
<option>Ru-Board Варезник
<option>Поиск по Ru-Board (Google)
<option>FileSearch.ru
<option>Meta-Ukraine
</select>
<input type=text name=Q>
<input type=button onClick="goSE()" value="Искать!">
</form>

 
Добавлено
Вот в действии:
http://forall.ru-board.com/Svarga/se_select.html

----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 21:36 22-11-2003
F1eryG



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Svarga
Во, во это именно то что мне нужно, не мог бы ты уточьнить каким образом добавлять туда другие поисковики, а именно меня интересует то почему при выборе, к примеру, Yandex , форма обращается именно к адресу http://www.yandex.ru/yandsearch?rpt=rad&text=, или там просто по порядку???
 
И что нужно сделать чтобы результат поиска открывался в новом окне???

Всего записей: 165 | Зарегистр. 22-11-2003 | Отправлено: 22:30 22-11-2003 | Исправлено: F1eryG, 22:32 22-11-2003
xntx



хнотик-багоискатель
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
F1eryG

Цитата:
И что нужно сделать чтобы результат поиска открывался в новом окне???

надо заменить
Цитата:
location.href=se[d.F.SE.selectedIndex]+escape(query)}  

на
Цитата:
window.open=se[d.F.SE.selectedIndex]+escape(query)}  


----------
Hello world!

Всего записей: 5169 | Зарегистр. 15-02-2003 | Отправлено: 23:30 22-11-2003
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xntx

Цитата:
window.open=se[d.F.SE.selectedIndex]+escape(query)}  

Либо просто в form target=_blank

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:42 22-11-2003
xntx



хнотик-багоискатель
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery
врядли поможет. посмотри код. ведь при сабмите ничего не делается (return false), а то что делают всякие онклики и онабмиты уже к target не относится

----------
Hello world!

Всего записей: 5169 | Зарегистр. 15-02-2003 | Отправлено: 00:39 23-11-2003
Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
F1eryG

Цитата:
форма обращается именно к адресу http://www.yandex.ru/yandsearch?rpt=rad&text=,  или там просто по порядку???  

да, по порядку, т.е. порядковый номер поискового адреса в массиве соответствует номеру поисковика в <select>'е...
обрати внимание, что во всех вариантах поиска параметр, соответствующий поисковому запросу, поставлен в конец адреса (text= для Яндекса, srch= для Асталависты и т.п.) — сделал так для простоты — всё одно работает...
 

Цитата:
И что нужно сделать чтобы результат поиска открывался в новом окне???

xntx

Цитата:
window.open=se[d.F.SE.selectedIndex]+escape(query)}  

Cheery

Цитата:
Либо просто в form target=_blank  

малость не то: window.open нельзя присваивать значение, а отправка формы в моём случае блокируется
F1eryG
замени
Цитата:
if(query!=''){  
location.href=se[d.F.SE.selectedIndex]+escape(query)}  
на

Цитата:
if(query!=''){  
window.open(se[d.F.SE.selectedIndex]+escape(query))}  

(вот оно: http://forall.ru-board.com/Svarga/se_select_win_diff.html )
или на

Цитата:
if(query!=''){
var win=window.open(se[d.F.SE.selectedIndex]+escape(query),'newWin')
win.focus()}
(а сие вот: http://forall.ru-board.com/Svarga/se_select_win_same.html )
(первый вариант — все запросы открываются в новых окнах, второй — в одном и том же)...
 
xntx

Цитата:
 при сабмите ничего не делается (return false), а то что делают всякие онклики и онабмиты уже к target не относится

а onSubmit как же? делается то же самое, что и при нажатии на кнопку , то бишь просто после набора запроса можно ентером поиск запускать, чтоб к мыше не тянуться )

----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 01:48 23-11-2003 | Исправлено: Svarga, 01:51 23-11-2003
xntx



хнотик-багоискатель
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Svarga

Цитата:
малость не то: window.open нельзя присваивать значение

ну эт я на спешку сделал две цитаты и заменил, понятное дело что надо делать window.open(string_address) как функцию...

Цитата:
а onSubmit как же? делается то же самое, что и при нажатии на кнопку , то бишь просто после набора запроса можно ентером поиск запускать, чтоб к мыше не тянуться
ну я имел ввиду что при сабмите не сабмитится (во сказал)
ну ты понял

----------
Hello world!

Всего записей: 5169 | Зарегистр. 15-02-2003 | Отправлено: 04:02 23-11-2003
F1eryG



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо, теперь делишки пойдут в горку Пока вроде всё понятно!

Всего записей: 165 | Зарегистр. 22-11-2003 | Отправлено: 06:39 23-11-2003
F1eryG



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Возник ещё один вопросик, а можно ли сделать так чтобы один из результатов поиска открывался в том же окне (поиск по моему сайту), а другие в отдельном?

Всего записей: 165 | Зарегистр. 22-11-2003 | Отправлено: 17:23 23-11-2003
Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
F1eryG

Цитата:
 можно ли сделать так чтобы один из результатов поиска открывался в том же окне (поиск по моему сайту), а другие в отдельном

В том же окне, в котором открыта страница с формой или в новом, но не том новом, где результаты поиска других поисковиков?

----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 02:04 24-11-2003
F1eryG



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В том же окне, в котором находится форма, а все остальные в новых окнах, просто хотелось бы сделать чтобы оснавной поиск был по моему сайту, а все дополнительные в новых окнах открывались

Всего записей: 165 | Зарегистр. 22-11-2003 | Отправлено: 21:15 25-11-2003
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
F1eryG

Цитата:
В том же окне, в котором находится форма, а все остальные в новых окнах, просто хотелось бы сделать чтобы оснавной поиск был по моему сайту, а все дополнительные в новых окнах открывались

Ну просто же )  

Код:
if(query!='')  
{
  if(d.F.SE.selectedIndex==0)
   {  
      location.href=se[d.F.SE.selectedIndex]+escape(query)
    }    
    else  
   {
    window.open(se[d.F.SE.selectedIndex]+escape(query))
   }
}

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

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:34 25-11-2003
F1eryG



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибочьки, пока вроде всё ясно!

Всего записей: 165 | Зарегистр. 22-11-2003 | Отправлено: 01:12 26-11-2003
F1eryG



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Блин, новый трабл. . . Ситуация такая, при вводе слова (например "тестирование" ) на руском и выборе к примеру поисковик Yandex URL имеет следующий вид
 
http://www.yandex.ru/yandsearch?rpt=rad&text=%u0442%u0435%u0441%u0442%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435
 
но при этом поисковик ищет слово "тестирование" с этим всё ок!
А вот если выбрать поисковик Апорт то URL имеет такой вид
 
http://sm.aport.ru/scripts/template.dll?r=%u0442%u0435%u0441%u0442%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435
 
но увы Апорт ищет и такуюже абра-кадабру "%u0442%u0435%u0441%u0442%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435"
 
что делать??? С какого. . . форма преобразует слово "тестирование" в такую абра-кадабру "%u0442%u0435%u0441%u0442%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435" И такая ситуация с многими поисковиками в том числе под замес поподает и поиск на моём сайте Актуальность формы при таком раскладе просто улитучивается

Всего записей: 165 | Зарегистр. 22-11-2003 | Отправлено: 02:48 27-11-2003
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
F1eryG
Это потому, что escape в IE кодирует в unicode типа %uxxxx, тогда как большинство остальных браузеров используют для этого обычный формат — %xx и не все скрипты настроены на его понимание.
зы: но самое интересное, что он же преобразует в формат %xx при нормальном GET из формы..

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 03:11 27-11-2003 | Исправлено: Cheery, 03:12 27-11-2003
Svarga

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery

Цитата:
Это потому, что escape в IE кодирует в unicode

ужас-то какой... не знал...
 
F1eryG
тогда эспешиали для ИЕ придётся без escape отправлять, просто заменив через replace пробелы на "+"..
 
т.е. делаем дополнительную функцию вроде такой:

Код:
function enc(x){
if (document.all&&navigator.userAgent.indexOf('Opera')== -1)
{while(x.match(/\s/)){x=x.replace(/\s/,'+')}
return x}
else {return escape(x)}
}

 
и вместо escape(query) пишем enc(query) в функции  goSE()

----------
away.

Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 08:32 27-11-2003
F1eryG



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мужики, я чёта полёгкой запутался, вот, ниже, приведено то что у меня получилось, что именно заменить надо?
 
 
 
<script>  
var d=document  
 
var se=new Array('modules.php?name=Search&query=',
'http://www.yandex.ru/yandsearch?rpt=rad&text=',
'http://search.rambler.ru/srch?words=',
'http://sm.aport.ru/scripts/template.dll?r=',
'http://www.google.com/search?sourceid=opera&num=0&ie=windows-1251&oe=windows-1251&inlang=ru&filter=0&q=')  
 
function FLS(){return false}  
function goSE(){  
var query=d.F.Q.value  
if(query!='')  
{  
  if(d.F.SE.selectedIndex==0)  
   {    
      location.href=se[d.F.SE.selectedIndex]+escape(query)  
    }    
    else  
   {  
    window.open(se[d.F.SE.selectedIndex]+escape(query))  
   }  
}
else{return false}  
}  
</script>  
<form action="javascript:return FLS()" onSubmit="goSE()" name=F >  
&nbsp;&nbsp;&nbsp;Что искать
<input type=text name=Q>  
&nbsp;Где искать
<select name=SE>  
<option>На сайте
<option>Поиск: Яндекс
<option>Поиск: Рамблер
<option>Поиск: Апорт
<option>Поиск: Google
</select>  
<input type=button onClick="goSE()" value="Искать">
</form>

Всего записей: 165 | Зарегистр. 22-11-2003 | Отправлено: 21:25 27-11-2003
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Интернет » Web-программирование » JavaScript/HTML: Форма поиска с поисковыми машинами на выбор


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru