PHP数据库过滤器

时间:2015-05-06 14:43:42

标签: php mysql

我试图有一个简单的选择框来过滤数据库。我已经成功填充了数据库中的所有关于页面加载的价值,但是我似乎无法克服应用过滤器的最后障碍。此外,单击过滤器按钮后,选择文本是否可以保留在文本中而不是返回到默认文本?

[注意:我启用了漂亮的URL,因此最后没有.php]

代码如下:

            <?php 

            $query = "SELECT * FROM Events";
            echo $Type;

            if (isset($_POST['filter'])) {

                $Type = $_POST['value'];

                $query .= " WHERE Type = '{$Type}'";

            }               

            $result = mysql_query($query);

            ?>                      

            <form action='/events' method="post" name="form_filter" >
                <select class="eventList">
                    <option value="EVENT1">EVENT1</option>
                    <option value="EVENT2">EVENT2</option>
                    <option value="EVENT3">EVENT3</option>
                    <option value="EVENT4">EVENT4</option>
                    <option value="EVENT5">EVENT5</option>
                    <option value="EVENT6">EVENT6</option>
                    <input type="submit" name="filter" value="Filter">                      
                </select>

            </form> 

            <table class="table table-striped table-hover table-curved">
                <thead>
                    <tr>
                        <th><b>Date</b></th>
                        <th><b>Event Name</b></th>
                        <th><b>Type</b></th>
                        <th><b>Region</b></th>
                    </tr>
                </thead>
                <tbody>                 

                <?php while ($row = mysql_fetch_array($result)) { ?>
                <tr>
                    <td><?php echo $Date = $row['Date']; ?></td>
                    <td><?php echo $Name = $row['Name']; ?></td>
                    <td><?php echo $Type = $row['Type']; ?></td>
                    <td><?php echo $Region = $row['Region']; ?></td>
                </tr>
                <?php } ?>
                </tbody>
            </table>

2 个答案:

答案 0 :(得分:2)

您的<select>没有名字:

<select class="eventList" name="event">

$_POST数组中使用该名称作为索引:

$Type = $_POST['event'];

答案 1 :(得分:0)

更新您的代码,如下所示

<?php 

        $query = "SELECT * FROM Events";
        echo $Type;

        if (isset($_POST)) {

            $Type = $_POST['event'];

            $query .= " WHERE Type = '{$Type}'";

        }               

        $result = mysql_query($query);

        ?>                      

        <form action='/events' method="post" name="form_filter" >
            <select class="eventList" name="event">
                <option value="EVENT1" <?php echo ($Type=="EVENT1")?'selected="selected"':'';?>>EVENT1</option>
                <option value="EVENT2" <?php echo ($Type=="EVENT2")?'selected="selected"':'';?>>EVENT2</option>
                <option value="EVENT3" <?php echo ($Type=="EVENT3")?'selected="selected"':'';?>>EVENT3</option>
                <option value="EVENT4" <?php echo ($Type=="EVENT4")?'selected="selected"':'';?>>EVENT4</option>
                <option value="EVENT5" <?php echo ($Type=="EVENT5")?'selected="selected"':'';?>>EVENT5</option>
                <option value="EVENT6" <?php echo ($Type=="EVENT6")?'selected="selected"':'';?>>EVENT6</option>
                <input type="submit" name="filter" value="Filter">                      
            </select>

        </form> 

        <table class="table table-striped table-hover table-curved">
            <thead>
                <tr>
                    <th><b>Date</b></th>
                    <th><b>Event Name</b></th>
                    <th><b>Type</b></th>
                    <th><b>Region</b></th>
                </tr>
            </thead>
            <tbody>                 

            <?php while ($row = mysql_fetch_array($result)) { ?>
            <tr>
                <td><?php echo $Date = $row['Date']; ?></td>
                <td><?php echo $Name = $row['Name']; ?></td>
                <td><?php echo $Type = $row['Type']; ?></td>
                <td><?php echo $Region = $row['Region']; ?></td>
            </tr>
            <?php } ?>
            </tbody>
        </table>

我已更新此行 `if(isset($ _ POST)){

并添加了选择名称和代码列表代码

 $Type =$_POST['event'];
<select class="eventList" name="event">
<option value="EVENT1" <?php echo ($Type=="EVENT1")?'selected="selected"':'';?>>EVENT1</option>
相关问题