过滤数据以显示使用php中的下拉选项

时间:2013-04-07 15:43:23

标签: php mysql drop-down-menu filter

我尝试通过mySQL的下拉选项显示一些数据

当用户选择美国选项并单击提交时,该页面将转到下一页并显示仅适用于美国的数据

这是我的test.html代码

<body>
    <table border="0">
    <tr>
    <th>test
    </th>
    </tr>
      <tr>
        <td>Select Foreign Agent Country</td>
        <td></td>
        <td>
        <select>
        <option value="US">United States</option>
        <option value="AUD">Australia</option>
    </select> 
        </td>
      </tr>
        <td>
        <button type="submit"><a href="showDB.php">submit</a></button>
        </td>

    </table>

</body>

这是我的第二页showDB.php

<?php
//connect to server
$connect = mysql_connect("localhost", "root", "");

//connect to database
mysql_select_db("asdasd");

//query the database
//$query = mysql_query("SELECT * FROM auip_wipo_sample");
if($_POST['value'] == 'US') {  
    // query to get all US records  
    $query = mysql_query("SELECT * FROM auip_wipo_sample WHERE app_country='US'");  
}  
elseif($_POST['value'] == 'AUD') {  
    // query to get all AUD records  
    $query = mysql_query("SELECT * FROM auip_wipo_sample WHERE app_country='AUD'");  
} else {  
    // query to get all records  
    $query = mysql_query("SELECT * FROM auip_wipo_sample");  
}  
//fetch the result
Print "<table border cellpadding=3>"; 
while($row = mysql_fetch_array($query))
{
    Print "<tr>"; 
    Print "<th>Name:</th> <td>".$row['invention_title'] . "</td> "; 
    Print "<th>Pet:</th> <td>".$row['invention-title'] . " </td></tr>"; 
}
Print "</table>"; 
?>

我尝试上面的代码,但是我得到了2个错误

Undefined index: value in C:\xampp\htdocs\folder\showDB.php on line 10
Undefined index: value in C:\xampp\htdocs\folder\showDB.php on line 14

第10行是     if($ _ POST ['value'] =='US'){

和第14行是     elseif($ _ POST ['value'] =='AUD'){

任何人都可以提供解决方案

感谢

2 个答案:

答案 0 :(得分:1)

您的表单中没有名称为value的元素,因此您也没有$_POST['value']!实际上,你根本没有提交表格,你只是在提交按钮内放置了另一个页面的链接?

<body>
    <form action="showDB.php">
        <table border="0">
            <tr>
                <th>test</th>
            </tr>
            <tr>
                <td>Select Foreign Agent Country</td>
                <td></td>
                <td>
                    <select name="value">
                        <option value="US">United States</option>
                        <option value="AUD">Australia</option>
                    </select>
                </td>
            </tr>
            <td>
                <button type="submit">submit</button>
            </td>
        </table>
    </form>
</body>

答案 1 :(得分:0)

您需要向test.html添加name参数 - 将其设置为name="value"以使showDB.php无需任何更改即可正常工作,或将第10行和第14行设置为与{name匹配1}}你设置的参数。示例如下:

修改 @adeneo是对的,你还需要添加一个表单和一个有效的提交按钮

<body>
    <form action="showDB.php" method="post">
    <table border="0">
        <tr>
            <th>test</th>
        </tr>
        <tr>
            <td>Select Foreign Agent Country</td>
            <td></td>
            <td>
                <select name="value">
                    <option name="country" value="US">United States</option>
                    <option name="country" value="AUD">Australia</option>
                </select>
            </td>
        </tr>
        <td>
            <input type="submit" name="btn_submit" /> 
        </td>
    </table>
    </form>
</body>

和php:

if($_POST['country'] == 'US') {  
    // query to get all US records  
    $query = mysql_query("SELECT * FROM auip_wipo_sample WHERE app_country='US'");  
}  
elseif($_POST['country'] == 'AUD') {