Форум SAPE.RU

Форум SAPE.RU (http://forum.sape.ru/index.php)
-   Разработка и сопровождение сайтов (http://forum.sape.ru/forumdisplay.php?f=29)
-   -   Помогите разобраться с поиском на сайте! (http://forum.sape.ru/showthread.php?t=76753)

ZazulaJ 07.01.2012 14:33

Помогите разобраться с поиском на сайте!
 
Я сделала поиск по сайту. Он работает нормально, все ищет, но в строку адреса передает не фразу, которую я ищу, а какие-то символы. Как сделать, чтобы передавалась фраза. Та же сделан постраничный вывод, но при переходе на другую страницу в строку адреса выводится фраза, а в сам запрос символы и все сбрасывается. Как сделать так, чтобы и в строке адреса была фраза и в запросе и при переходе по страницам все сохранялось. Заранее спасибо!

VAU 07.01.2012 14:49

ZazulaJ, для начала разберитесь с методом запроса: POST или GET.
Если второй, то у вас запрос передается как параметр УРЛ в виде пары (название переменной)=значение. Дальше к этой паре можете добавлять сколько угодно параметров, в том числе номер страницы. При получении запроса просто разбираете УРЛ на сервере.

Что такое "какие-то символы"? При запросе слов на латиннице тоже "какие-то символы"? Возможно это просто УРЛ кодировка кириллицы.

ZazulaJ 07.01.2012 15:32

Метод Get, и запрос так и передает название переменной=значение

вот как выглядит запрос:
SELECT * FROM tovar, tip WHERE name LIKE '%постельное белье%' OR tname LIKE '%постельное белье%' GROUP BY id LIMIT 0,10

вот как это выглядит в строке адреса :
searchterm=%EF%EE%F1%F2%E5%EB%FC%ED%EE%E5+%E1%E5%E B%FC%E5&p=%CD%E0%E9%F2%E8.
Но так же передает другой параметр - "р" - это название кнопки "найти". этот параметр не нужен, но не знаю, как от него избавиться.
А для перехода по страницам сделана ссылка:
<a href='searchterm=".$searchterm."&page=".$i.""'>".$ i."</a>
А при переходе по этой ссылке в строку адреса передается searchterm=постельное белье&page=2 а запрос становится таким
SELECT * FROM tovar, tip WHERE name LIKE '%постельное белье&page=2%' OR tname LIKE '%постельное белье&page=2%' GROUP BY id LIMIT 0,10
Может что-то не так со ссылкой или с запросом?
И подскажите, пожалуйста, как проверить УРЛ кодировку?

VAU 07.01.2012 16:01

Цитата:

Сообщение от ZazulaJ (Сообщение 1190328)
вот как выглядит запрос:
SELECT * FROM tovar, tip WHERE name LIKE '%постельное белье%' OR tname LIKE '%постельное белье%' GROUP BY id LIMIT 0,10

вот как это выглядит в строке адреса :
searchterm=%EF%EE%F1%F2%E5%EB%FC%ED%EE%E5+%E1%E5%E B%FC%E5&p=%CD%E0%E9%F2%E8.

Все правильно, это УРЛ-кодировка фразы "постельное белье". Если создает проблемы при поиске, нужно ее раскодировать перед тем как вставлять в SQL запрос.

Цитата:

Сообщение от ZazulaJ (Сообщение 1190328)
Но так же передает другой параметр - "р" - это название кнопки "найти". этот параметр не нужен, но не знаю, как от него избавиться.

Кнопка вида "input type="submit"? Если нет, то лучше сделать такую. Возможно какое-то лишнее свойство в элементе управления кнопка.

Цитата:

Сообщение от ZazulaJ (Сообщение 1190328)
<a href='searchterm=".$searchterm."&page=".$i.""'>".$ i."</a>
А при переходе по этой ссылке в строку адреса передается searchterm=постельное белье&page=2 а запрос становится таким
SELECT * FROM tovar, tip WHERE name LIKE '%постельное белье&page=2%' OR tname LIKE '%постельное белье&page=2%' GROUP BY id LIMIT 0,10

К сожалению пишу в другой среде, но возможно требуется кодировать фразу в УРЛ прежде чем вставлять в код ссылки.
Может еще быть связано с разной html кодировкой. Проверьте чтобы совпадала с кодировкой в движке.

ZazulaJ 07.01.2012 16:23

Большое спасибо за помощь. С кнопкой разобралась, осталось разобраться с кодировкой :))

VAU 07.01.2012 16:26

Цитата:

Сообщение от ZazulaJ (Сообщение 1190349)
Большое спасибо за помощь. С кнопкой разобралась, осталось разобраться с кодировкой )

Пожалуйста!

ZazulaJ 09.01.2012 09:25

Есть у меня еще один поиск на сайте - поиск по параметрам. Часть поиска (сортировка по типу, производителю, размеру и т.п.) сделана с помощью jumpMenu, а последние параметры - сортировка цены - сделаны просто текстовым полем. Все это в одной форме. Сам поиск работает, но в QUERY_STRING и соответственно в строку адреса передается куча пераметров. вот как это выглядит:
list=3&kat=2&tip=25&kat1=%2Fcatalog%2Fkategoriya2. htm&tip1=%2Fcatalog%2Fkategoriya2%2Ftip25.htm&bren d1=%2Fcatalog%2Fkategoriya2%2Ftip25.htm&size1=%2Fc atalog%2Fkategoriya2%2Ftip25.htm&mat1=%2Fcatalog%2 Fkategoriya2%2Ftip25.htm&mat1=%2Fcatalog%2Fkategor iya2%2Ftip25.htm&ot=0&do=100
Как сделать так, чтобы передавались только нужные параметры?


Часовой пояс GMT +3, время: 07:49.

Работает на vBulletin® версия 3.8.7.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
SAPE.RU — система купли-продажи ссылок с главных и внутренних страниц сайтов.