Форум сетевых администраторов
Показаны 16 сообщений на этой странице

Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- Языки разметки (http://netadmin.ws/forum/forumdisplay.php?forumid=24)
-- Подскажите как правильно прописать тэг <form>... (http://netadmin.ws/forum/showthread.php?threadid=4660)


Помещено Kanarsky 08-03-2003 в 10:37:

Подскажите как правильно прописать тэг <form>...

Неудобно даже как-то спрашивать , вроде мелочь, но первый раз с этим столкнулся....
Значит, тема такая:
Делаю поиск, поиск будет по каталогу, в рунете, в мире...
Как сделать, чтобы допустим при выборе поиска в каталоге (<input name=каталог тра-ля-ля> ) поиск направлялся на поисковый скрипт каталога, а при выборе поиска в рунете и мире <input name=рунет тра-ля-ля> ) на другой скрипт...
Т.е. как правильно прописать тэг <form>, чтобы искал в двух разных скриптах???

__________________
Садись в ногах! Правды нет!


Помещено polo 08-03-2003 в 19:23:

только используя яваскрипт.

polo добавил 08-03-2003 в 19:24:36:
или создать отдельный скрипт который бы перенаправлял на нужную страницу, смотри пример на главной странице сайта.

__________________
Всегда есть решение.


Помещено Ausw 09-03-2003 в 06:26:

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

__________________
"Gott weiss, ich will kein Engel sein!"


Помещено Kanarsky 09-03-2003 в 06:39:

polo
Ява нежалательно конечно, но если других вариантов нет, не подскажешь пример?!....
Увидел на главной, вот такой вариант (через отдельный скрипт) обычно и встречался там где пытался смотреть, но написать такой не в силах

Ausw
Не в обиду конечно, но нифига не понял из твоего поста...

__________________
Садись в ногах! Правды нет!


Помещено Vanish 09-03-2003 в 09:24:

Kanarsky
Перевожу. Он имел ввиду выставление радионопок (есть квадратные такие - чекбоксы зовутся и выбрать можно несколько пунктов, а есть кругленькие - радио, можно выбрать только один пункт) Ð_адиокнопки действуют таким образом что выбрать можно только один пункт, как это необходимо в твоем случае. Далее при отправке запроса на поиск, скрипт смотрит какой пункт выбран, а дальше уже выбирается необходимый путь поиска.

Vanish добавил 09-03-2003 в 09:29:06:
<input type=radio name=searchtype value=catalog checked>
<input type=radio name=searchtype value=runet>
При выборе первого пункта скрипт будет иметь $searchtype = catalog, при выборе второго $searchtype = runet
Да кнопки будут связаны в группу только в том случае если у них одинаковые имена, т.е. как это у меня сделано...

__________________
No pity, no mercy, no regret.


Помещено Kanarsky 09-03-2003 в 11:17:

Vanish
Ну это всё понятно.... Но скрипт же не один поисковый, а два совершенно разных....
Ð_асписываю:
Скрипт поиска по каталогу: http://www.ualist.com/cgi-bin/tsearch.cgi
Скрипт для поиска в рунете и мире: http://search.ualist.com/cgi-bin/poisk.pl
Второй скрипт имеет две радиокнопки, для поиска в рунете и мире соответственно...
<input type=radio name=okr value=ru>
<input type=radio name=okr value=eng>
Как сделать ОДНУ форму, чтобы поиск вёлся и в каталоге, и в рунете, и по миру???
Уже не знаю как объяснять....

__________________
Садись в ногах! Правды нет!


Помещено Vanish 09-03-2003 в 12:24:

quote:
отдельный скрипт который бы перенаправлял на нужную страницу, смотри пример на главной странице сайта.

релизованний методои радиокнопок.

__________________
No pity, no mercy, no regret.


Помещено polo 09-03-2003 в 14:14:

форма

code:

<form action="search.php" method="post" name="searchform" id="searchform">
  <input name="query" type="text" id="query" size="60">
  <input type="submit" name="Submit" value="Search">
  <br>
  <input type="radio" name="goto" value="yandex">
  Yandex 
  <input type="radio" name="goto" value="google">
  Google 
</form>


скрипт search.php

PHP:

// search.php
<?php
if ($_REQUEST['goto'] == 'yandex') {
    
$url = 'http://www.yandex.ru/yandsearch?text='.$_REQUEST['query'];
} elseif (
$_REQUEST['goto'] == 'google') {
    
$url = 'http://www.google.com/search?q='.$_REQUEST['query'];
} 

if (isset(
$url)) {
    
header("Location: $url");
} else {
    Echo 
"Вы не ввели обязательных условий поиска";
}
?>

__________________
Всегда есть решение.


Помещено Kanarsky 11-03-2003 в 16:09:

Чёт не получается у меня никак до ума всё довести, подскажи где ошибка...
Вот какой у меня получился search.php:

PHP:

 <?php 
if ($_REQUEST['okr'] == 'catalog') { 
    
$url = 'http://www.ualist.com/cgi-bin/tsearch.cgi'.$_REQUEST['query']; 
} elseif (
$_REQUEST['okr'] == 'ru') { 
    
$url = 'http://search.ualist.com/cgi-bin/poisk.pl'.$_REQUEST['query']; 
} elseif (
$_REQUEST['okr'] == 'eng') { 
    
$url = 'http://search.ualist.com/cgi-bin/poisk.pl'.$_REQUEST['query']; 
} 

if (isset(
$url)) { 
    
header("Location: $url"); 
} else { 
    Echo 
"Вы не ввели обязательных условий поиска"; 
} 
?>


А вот сама форма:

code:
<table bgcolor="#FFFFFF" width="100%" border="0" cellspacing="0" cellpadding="4">
<form action="http://www.ualist.com/search.php" method="post" name="searchform" id="searchform">
<tr><td bgcolor="#FFAE00" class="text" colspan="2"><b>◊ Поиск</b></td></tr>
<tr><td align="center" valign="center" class="tmenu"><b>Я ищу:</b> 
<input type="hidden" name="livebuilt" value="built">
<input type="text" name="keywords" style="background-color: #F1F1F1;" size="35"> 
<input type=hidden name=p value=1>
<input type=hidden name=step value=own>
<input style="cursor: hand;" type="submit" value=" найти "><br>
<input type="radio" name="okr" value="catalog" checked>в каталоге
<input type="radio" name="okr" value="ru">в рунете
<input type="radio" name="okr" value="eng">в мире
</td></tr></form>
</table>


Не передаётся сам поисковый запрос ни на один из скриптов...

__________________
Садись в ногах! Правды нет!


Помещено Nevermind 11-03-2003 в 23:24:

Kanarsky,
Параметры методом GET должны передаваться после ? в адресной строке. Т.е. вместо вот этого:

quote:
$url = 'http://www.ualist.com/cgi-bin/tsearch.cgi'.$_REQUEST['query'];
У тебя должно быть что-то вроде этого:
quote:
$url = 'http://www.ualist.com/cgi-bin/tsearch.cgi?query='.$_REQUEST['query'];
В общем, смотри в примере у polo. Там для Яндекса запрос передается через переменную ?text=, а для Гугла - через ?q=.

В твоем же случае может там и не ?query= должно быть. Тяжело гадать на кофейной гуще надо знать, каким образом передаются запросы в соответствующие файлы: poisk.pl & tsearch.cgi.


Помещено polo 11-03-2003 в 23:29:

не обязательно, скрипт ведь может быть так устроен что бдет принимать и такую строку и сам присваивать ее переменной.
Тут проблема в том что в форме текст содержится в переменной keywords а в скрипте ссылается на $_REQUEST['query'], должно быть $_REQUEST['keywords'].

__________________
Всегда есть решение.


Помещено Nevermind 12-03-2003 в 00:32:

polo,
Точно. Проглядел я что-то. Но всё же на те перловые скрипты-поисковики тоже стоило бы посмотреть. Если там не через Query_string запрос идёт, тогда грабли останутся.


Помещено Kanarsky 12-03-2003 в 08:36:

Вот сами файлы поиска:

__________________
Садись в ногах! Правды нет!


Помещено Kanarsky 12-03-2003 в 08:38:

Второй:

__________________
Садись в ногах! Правды нет!


Помещено Kanarsky 27-03-2003 в 02:38:

polo
Nevermind
Ну подскажите как доделать, замучился я уже с ними...

__________________
Садись в ногах! Правды нет!


Помещено Nevermind 27-03-2003 в 09:32:

Kanarsky,
В общем-то тебе уже указали неполадку.. Попробуй такой search.php сделать:

PHP:

<?php 
if ($_REQUEST['okr'] == 'catalog') { 
    
$url = 'http://www.ualist.com/cgi-bin/tsearch.cgi?'.$_REQUEST['keywords']; 
} elseif (
$_REQUEST['okr'] == 'ru') { 
    
$url = 'http://search.ualist.com/cgi-bin/poisk.pl?'.$_REQUEST['keywords']; 
} elseif (
$_REQUEST['okr'] == 'eng') { 
    
$url = 'http://search.ualist.com/cgi-bin/poisk.pl?'.$_REQUEST['keywords']; 
} 

if (isset(
$url)) { 
    
header("Location: $url"); 
} else { 
    Echo 
"Вы не ввели обязательных условий поиска"; 
} 
?>

Скрипт, который дал тебе в пример polo в качестве строки запроса имеет переменную $query. У тебя же в скрипте должно быть $keywords, но ты видать не доглядел и оставил $query. Потому ничего и не происходит. Замени на keywords и всё должно работать.

А вообще поставь в скрипт в начало строчку: error_reporting(E_ALL); он должен выдать, что $_REQUEST['query'] - это unregistered value.

PS. в ходе отладки скриптов всегда включай вывод ошибок на полную..


Формат времени GMT. Текущее время 00:21.
Показаны 16 сообщений на этой странице

Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.