我希望用户按类别过滤搜索
我有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
<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)
答案 0 :(得分: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
<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']) && 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 文件,并且...逻辑将是模拟的。
注意:必须使用filter functions对表单发送的数据进行清理。在代码中,使用is_integer和is_string函数进行第一级检查。