#php #javascript #search
#php #javascript #Поиск
Вопрос:
Я хотел, чтобы пользователи фильтровали поиск по категориям
У меня есть 3 PHP-файла. Один с именем searchbycity.php
, searchbystate.php
и по умолчанию search.php
Мой вопрос в том, как бы мне настроить это, чтобы я мог щелкнуть переключатель, и панель поиска узнала, какой php-файл искать с этой информацией?
Вот как у меня пока изложена вся суть переключателя
<input type='text' size='70' name='search'>
<input type='image' value='search' src='images/tickmark.png'></a><br>
Search by amp;nbsp;
<input type="radio" onclick="eng = this.value;" checked name="sengines"
value="http://www.google.com/search?q=" />
City
<input type="radio" onclick="eng = this.value;" name="sengines"
value="http://www.altavista.com/web/results?q=" />State
(Игнорируйте поиск в Google и AltaVista, я получил его с веб-сайта: P)
Комментарии:
1. мне кажется, что это вопрос javascript
2. javascript? как бы я к нему обратился?
3. Вы можете сделать все это, используя один файл. Ваши входные данные должны быть заключены в форму, и установка переключателя просто добавит дополнительное условие к запросу.
4. Я не уверен, что понимаю, но если вы хотите запросить определенный файл, основанный на том, какой флажок установлен, AJAX через JavaScript для запроса файла — это то, что я бы сделал. Однако, если вы имеете в виду, что хотите изменить
action="..."
для формы, содержащей входные данные, также используйте JavaScript (но без AJAX) для прослушивания щелчка по одному из флажков и изменения атрибута действия.
Ответ №1:
Вы могли бы написать этот HTML-код (обратите внимание на замену значений радио-строк целыми числами):
<form action="search.php" method="GET">
<input type='text' size='70' name='search'>
<input type='image' value='search' src='images/tickmark.png'></a><br>
Search by amp;nbsp;
<input type="radio" onclick="eng = this.value;" checked name="sengines"
value="1" />
City
<input type="radio" onclick="eng = this.value;" name="sengines"
value="2" />State
<input type="submit" />
</form>
Когда пользователь нажимает кнопку отправки, search.php страница будет выполнена (на стороне сервера). Эта страница может содержать следующий код:
<?php
if(is_integer($_GET['sengines']) amp;amp; is_string($_GET['search'])){
switch($_GET['sengines']){
case 1: include_once "searchbycity.php";
searchByCity($_GET['search']);
break;
case 2: include_once "searchbystate.php";
searchByState($_GET['search']);
break;
}
}
?>
Итак, если пользователь выбрал первый переключатель, тоsearchbycity.php файл и гипотетическая функция под названием searchByCity, присутствующая в файле, будут вызываться с передачей значения $_GET[‘search’], представленного формой. В противном случае, будут включеныsearchbystate.php файл и… логика будет аналогичной.
Обратите внимание: данные, отправляемые формой, должны быть очищены с помощью функций фильтра. В коде предусмотрен первый уровень проверки с использованием функций is_integer и is_string.