2011-06-13 76 views
0

我希望用户筛选按类别搜索PHP搜索w /类别

我有3个PHP文件。一位叫searchbycity.phpsearchbystate.php,默认search.php

我的问题是,我将如何设置它,这样我就可以点击一个单选按钮,在搜索栏 就知道与信息搜索该PHP文件?

以下是我拥有了整个单选按钮的事情奠定了至今

<input type='text' size='70' name='search'> 
<input type='image' value='search' src='images/tickmark.png'></a><br> 
    Search by &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 

(忽略谷歌搜索和AltaVista的搜索,我从网站得到它:P)

+0

这似乎是一个JavaScript问题给我 – colinmarc 2011-06-13 23:01:53

+0

javascript?我将如何呼吁它? – 2011-06-13 23:04:47

+0

您可以使用一个文件完成所有操作。您的输入必须包含在表单中,并且设置单选按钮将简单地为查询添加额外条件。 – 2011-06-13 23:08:41

回答

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 &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']) && 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函数进行第一级检查。