Can';无法通过PHP获取要填充的高级搜索下拉列表值

Can';无法通过PHP获取要填充的高级搜索下拉列表值,php,pdo,get,form-submit,advanced-search,Php,Pdo,Get,Form Submit,Advanced Search,我有一个高级表单,如下所示: 我正在使用一个来自Bootsnipp的模板,其中包含我的代码,我正在尝试调整它-可用 我的搜索方法是基于搜索将值附加到特定的URL参数,然后在PHP代码中进一步检查这些参数是否为空或包含值,然后执行从数据库获取拍卖的代码 自从我开始玩这个,“按状态过滤”按钮没有从数据库中填充状态过滤器(唯一出现的是空白选项),而且我的搜索按钮(带有眼镜图标)消失了。不知道为什么,因为这以前是有效的。注意我使用的是PDO。以下是过滤器部分的HTML和PHP代码: <!-- P

我有一个高级表单,如下所示:

我正在使用一个来自Bootsnipp的模板,其中包含我的代码,我正在尝试调整它-可用

我的搜索方法是基于搜索将值附加到特定的URL参数,然后在PHP代码中进一步检查这些参数是否为空或包含值,然后执行从数据库获取拍卖的代码

自从我开始玩这个,“按状态过滤”按钮没有从数据库中填充状态过滤器(唯一出现的是空白选项),而且我的搜索按钮(带有眼镜图标)消失了。不知道为什么,因为这以前是有效的。注意我使用的是PDO。以下是过滤器部分的HTML和PHP代码:

<!-- Page Content -->
<div class="container">
    <!--This is the search bar-->
    <div class="container">
        <div class="row">
            <div class="col-sm-12">
                <!--                http://stackoverflow.com/questions/8476602/appending-get-parameters-to-url-from-form-action-->
<!--If this is a form it messes up the styling-->
                <div method="get" class="input-group" id="adv-search" action="listings.php">
                    <input type="text" name="q" class="form-control"
                           placeholder="Search for auctions by name or description" value=""/>
                    <div class="input-group-btn">
                        <div class="btn-group" role="group">
                            <div class="dropdown dropdown-lg">
                                <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"
                                        aria-expanded="false"><span class="caret"></span></button>
                                <div class="dropdown-menu dropdown-menu-right" role="menu">
                                    <form class="form-horizontal" role="form">
                                        <div class="form-group">
                                            <label for="filter">Sort By</label>
                                            <select class="form-control" name="sort" value="by_lowest_time">
                                                <!--                                                By default by lowest time remaining-->
                                                <option value="by_lowest_time" selected>Lowest Time Remaining</option>
                                                <option value="by_highest_time">Highest Time Remaining</option>
                                                <option value="by_lowest_price">Lowest Price</option>
                                                <option value="by_highest_price">Highest Price</option>
                                            </select>
                                        </div>
                                        <div class="form-group">
                                            <label for="filter">Filter by Category</label>
                                            <?php
                                            try {
                                                $catsql = 'SELECT * FROM ebay_clone.Category';
                                                $catq = $db->query($catsql);
                                                $catq->setFetchMode(PDO::FETCH_ASSOC);
                                            } catch (PDOException $e) {
                                                echo 'ERROR: ' . $e->getMessage();
                                            }
                                            ?>
                                            <select class="form-control" name="cat">
                                                <option value=""></option>
                                                <!--                                                http://stackoverflow.com/questions/3078192/how-to-set-html-value-attribute-with-spaces-using-php-->
                                                <?php while ($r = $catq->fetch()): ?>
                                                    <option
                                                        value="<?php echo str_replace(' ', '_', strtolower(htmlspecialchars($r['item_category']))); ?>"> <?php echo htmlspecialchars($r['item_category']) ?></option>
                                                <?php endwhile; ?>
                                            </select>
                                        </div>

                                        <div class="form-group">
                                            <label for="filter">Filter by State</label>
                                            <?php
                                            try {
                                                //         error_reporting(E_ERROR | E_PARSE);
                                                $statsql = 'SELECT * FROM ebay_clone.State';
                                                $statq = $db->query($statsql);
                                                $statq->setFetchMode(PDO::FETCH_ASSOC);
                                            } catch (PDOException $e) {
                                                echo 'ERROR: ' . $e->getMessage();
                                            }
                                            ?>
                                            <select class="form-control" name="state">
<!--                                                Blank option-->
                                                <option value=""></option>
                                                <?php while ($r = $statq->fetch()): ?>
                                                    <option value="<?php echo trimstr_replace(' ', '_', strtolower(htmlspecialchars($r['state']))); ?>"> <?php echo htmlspecialchars($r['state']) ?> </option>
                                                <?php endwhile; ?>
                                            </select>
                                        </div>
                                        <button type="button" value="search" class="btn btn-primary"><span
                                                class="glyphicon glyphicon-search" aria-hidden="true"></span></button>
                                    </form>

                                </div>

                            </div>
                            <button type="button" class="btn btn-primary"><span class="glyphicon glyphicon-search"
                                                                                aria-hidden="true"></span></button>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

排序
剩余最短时间
剩余最长时间
最低价格
最高价格
按类别筛选

while循环将填充一个
$row
变量

<?php while ($row = $statq->fetch()): ?>

我已经弄明白了。这与我更改SQL语句并将新SQL语句重新分配给新查询有关。另外,我不需要引用我的数据库名称,只需要引用数据库中的表

现在可以这样做了:

<!--This is the search bar-->
    <div class="container">
        <div class="row">
            <div class="col-sm-12">
                <!--                http://stackoverflow.com/questions/8476602/appending-get-parameters-to-url-from-form-action-->
                <!--If this is a form it messes up the styling-->
                <div class="input-group" id="adv-search">
                    <form method='get' action='listings.php'>
                        <input type="text" name="q" class="form-control"
                               placeholder="Search for auctions by name or description" value=""/>
                    </form>

                    <div class="input-group-btn">

                            <div class="btn-group" role="group">
                                <div class="dropdown dropdown-lg">
                                    <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"
                                            aria-expanded="false"><span class="caret"></span></button>
                                    <div class="dropdown-menu dropdown-menu-right" role="menu">
                                        <form class="form-horizontal" role="form">
                                            <div class="form-group">
                                                <label for="filter">Sort By</label>
                                                <select class="form-control" name="sort" value="by_lowest_time">
                                                    <!--                                                By default by lowest time remaining-->
                                                    <option value="by_lowest_time" selected>Lowest Time Remaining
                                                    </option>
                                                    <option value="by_highest_time">Highest Time Remaining</option>
                                                    <option value="by_lowest_price">Lowest Price</option>
                                                    <option value="by_highest_price">Highest Price</option>
                                                </select>
                                            </div>
                                            <!-- Item Category -->
                                            <div class="form-group">
                                                <label for="filter">Filter by Category</label>
                                                <select class="form-control" id="item-category" name="cat"
                                                        class="form-control">
                                                    <option value="" selected disabled hidden>Please Select a Category
                                                    </option>
                                                    <?php $sql = 'SELECT * FROM Category';
                                                    foreach ($db->query($sql) as $row) { ?>
                                                        <option
                                                            value="<?php echo $row['item_category']; ?>"><?php echo htmlspecialchars($row['item_category']); ?></option>
                                                    <?php } ?>
                                                </select>
                                            </div>
                                            <!-- Item State -->
                                            <div class="form-group">
                                                <label for="filter">Filter by State</label>
                                                <select class="form-control" id="item-state" name="state"
                                                        class="form-control">
                                                    <option value="" selected disabled hidden>Please Select a
                                                        Condition
                                                    </option>
                                                    <?php $sql = 'SELECT * FROM State';
                                                    foreach ($db->query($sql) as $row) { ?>
                                                        <option
                                                            value="<?php echo $row['state']; ?>"><?php echo htmlspecialchars($row['state']); ?></option>
                                                    <?php } ?>
                                                </select>
                                            </div>
                                            <button type="submit" action="listings.php" method="get" value="search"
                                                    class="btn btn-primary"><span
                                                    class="glyphicon glyphicon-search" aria-hidden="true"></span>
                                            </button>
                                        </form>

                                    </div>

                                </div>

                                <button type="submit" class="btn btn-primary"><span class="glyphicon glyphicon-search"
                                                                                    aria-hidden="true"></span></button>


                            </div>

                    </div>
                </div>
            </div>
        </div>
    </div>

排序
剩余最短时间
剩余最长时间
最低价格
最高价格
按类别筛选
请选择一个类别

抱歉是的,我注意到了,但不幸的是,这仍然不能解决问题。问题修正。代码生成了什么html代码?
<!--This is the search bar-->
    <div class="container">
        <div class="row">
            <div class="col-sm-12">
                <!--                http://stackoverflow.com/questions/8476602/appending-get-parameters-to-url-from-form-action-->
                <!--If this is a form it messes up the styling-->
                <div class="input-group" id="adv-search">
                    <form method='get' action='listings.php'>
                        <input type="text" name="q" class="form-control"
                               placeholder="Search for auctions by name or description" value=""/>
                    </form>

                    <div class="input-group-btn">

                            <div class="btn-group" role="group">
                                <div class="dropdown dropdown-lg">
                                    <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"
                                            aria-expanded="false"><span class="caret"></span></button>
                                    <div class="dropdown-menu dropdown-menu-right" role="menu">
                                        <form class="form-horizontal" role="form">
                                            <div class="form-group">
                                                <label for="filter">Sort By</label>
                                                <select class="form-control" name="sort" value="by_lowest_time">
                                                    <!--                                                By default by lowest time remaining-->
                                                    <option value="by_lowest_time" selected>Lowest Time Remaining
                                                    </option>
                                                    <option value="by_highest_time">Highest Time Remaining</option>
                                                    <option value="by_lowest_price">Lowest Price</option>
                                                    <option value="by_highest_price">Highest Price</option>
                                                </select>
                                            </div>
                                            <!-- Item Category -->
                                            <div class="form-group">
                                                <label for="filter">Filter by Category</label>
                                                <select class="form-control" id="item-category" name="cat"
                                                        class="form-control">
                                                    <option value="" selected disabled hidden>Please Select a Category
                                                    </option>
                                                    <?php $sql = 'SELECT * FROM Category';
                                                    foreach ($db->query($sql) as $row) { ?>
                                                        <option
                                                            value="<?php echo $row['item_category']; ?>"><?php echo htmlspecialchars($row['item_category']); ?></option>
                                                    <?php } ?>
                                                </select>
                                            </div>
                                            <!-- Item State -->
                                            <div class="form-group">
                                                <label for="filter">Filter by State</label>
                                                <select class="form-control" id="item-state" name="state"
                                                        class="form-control">
                                                    <option value="" selected disabled hidden>Please Select a
                                                        Condition
                                                    </option>
                                                    <?php $sql = 'SELECT * FROM State';
                                                    foreach ($db->query($sql) as $row) { ?>
                                                        <option
                                                            value="<?php echo $row['state']; ?>"><?php echo htmlspecialchars($row['state']); ?></option>
                                                    <?php } ?>
                                                </select>
                                            </div>
                                            <button type="submit" action="listings.php" method="get" value="search"
                                                    class="btn btn-primary"><span
                                                    class="glyphicon glyphicon-search" aria-hidden="true"></span>
                                            </button>
                                        </form>

                                    </div>

                                </div>

                                <button type="submit" class="btn btn-primary"><span class="glyphicon glyphicon-search"
                                                                                    aria-hidden="true"></span></button>


                            </div>

                    </div>
                </div>
            </div>
        </div>
    </div>