Поиск:

Ответ в темуСоздание новой темы Создание опроса
> mod_rewrite и GET-запрос, Добавить GET-параметр к ссылке 
V
    Опции темы
AXS
Дата 23.6.2011, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 26.9.2008
Где: РК

Репутация: нет
Всего: -1



в .htaccess
Код

RewriteEngine    on 

RewriteRule ^(.*)$ index.php?params=$1 [L]


есть форма
Код

<form action="/search" method="get">
  <input name="query" type="text" />
</form>


В итоге ссылка получается вида:
http://site.loc/search?query=qwerty

А хотелось бы:
http://site.loc/search/qwerty


Вопрос: как?

--------------------
<><><> AXS - Live Organizer v1.0  <><><> 0_o
PM MAIL WWW ICQ Skype GTalk   Вверх
AXS
Дата 24.6.2011, 06:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 26.9.2008
Где: РК

Репутация: нет
Всего: -1



Короче, пораскинул мозгами и вот так получилось:

Код

<form action="/search" method="post" id="search-form">
  <input id="search-query" onkeyup="document.getElementById('search-form').action='/search/'+document.getElementById('search-query').value" type="text" name="query" />
</form>


Обработчик при этом будет проверять и $_POST['query'] и значение из $_GET['params'] 
Предпочтение $_POST['query']. Нормальная работа при одном пустом значение. Отказ в случае разных значений.

Такое выёживание нужно чтобы пользователь мог искать и с помощью формы на сайте, и просто набирая в строке браузера. При этом ссылка простая и понятная любому.
--------------------
<><><> AXS - Live Organizer v1.0  <><><> 0_o
PM MAIL WWW ICQ Skype GTalk   Вверх
AXS
Дата 24.6.2011, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 26.9.2008
Где: РК

Репутация: нет
Всего: -1



Упрощённый обработчик (может пригодится кому):

Код

// Разбор ссылки
    if (!empty($_GET['params'])){ 
    $GET = explode('/', trim($_GET['params'], '/'));
  }

// $GET[0] должен быть = 'search' для следующих действий

    $post_query = isset($_POST['query'])?$_POST['query']:NULL;
    $get_query = isset($GET[1])?$GET[1]:NULL;
    
    $query_text = NULL; // Здесть в итоге будет запрос пользователя
    
    if (isset($post_query) && isset($get_query)){ // Двойной (нормальный) запрос
        if ($post_query == $get_query) $query_text = $post_query;
    } else {
        if (isset($post_query) && ($get_query == NULL)){ // POST запрос (отключен JavaScript)
            $query_text = $post_query;
        }elseif (isset($get_query) && ($post_query == NULL)){ // GET запрос (переход по ссылке)
            $query_text = $get_query;
        }
    }
    
    if ($query_text != NULL){
        // Работаем с поиском
    }

--------------------
<><><> AXS - Live Organizer v1.0  <><><> 0_o
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема »


 




[ Время генерации скрипта: 0.0377 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.