0

我正在制作一个包含数据库中信息的下拉菜单。它必须在我的下拉列表中获取不同的品牌,并且在选择品牌并提交搜索时,它将显示有关该品牌的信息。它从数据库中获取正确的品牌,但提交后它只显示我的最后一个品牌。有人可以帮帮我...这是我的下拉菜单和搜索(提交)代码:

<div class="bandwielkolom">
    <form action="index.php?lang=nl&p=<?php echo $_GET['p']; ?>#keuze" method="post">
        <table class="bandentabel">
        <tr>
            <th colspan="2">Op merk zoeken<a name="band"></a></th>
        </tr>
        <tr>
            <td>Merk:</td>
            <td>
                <select name="band_merk">
                <option value="0">- Merk -</option>
<?php
    $wielen = $wielclass->getMerkenWielen($website);
    foreach($wielen as $wiel)
    {
        echo "\t\t\t\t\t\t\t\t\t\t\t<option value=\"".$wiel->merk_code."\"";
        if(isset($_GET['search']) && $_GET['search'] == "band" && isset($_GET['wiel']) && $_GET['wiel'] == $wiel->merk_code || isset($_POST['band_submit']) && $_POST['band_merk'] == $wiel->merk_code) { echo " selected=\"selected\""; }
        echo ">".$wiel->merk_naam."</option>\n";
    }
?>
                </select>
            </td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td><input type="submit" name="band_submit" value="Zoek"/></td>
        </tr>
        </table>
    </form>
</div>  

这是我的课:

班级:

<?php
  class wielen extends connect {
    private $wielenlijst;
    public function getMerkenWielen($database) {
        $sql = "SELECT * FROM ".$database."_wielen ORDER BY merk_nummer";
        try {
            $stmt = $this->db->prepare($sql);
            $stmt->execute();
            $this->wielenlijst = $stmt->fetchAll(PDO::FETCH_OBJ);
            $stmt->closeCursor();
            return $this->wielenlijst;
        }
        catch (Exception $e) {
            die ($e->getMessage());
        }
    }
    public function __construct($dbo) {
        parent::__construct($dbo);
    }
  }
?>

这仅显示提交后的最后一个品牌:

<?php
  if(isset($_POST['band_submit']))
    echo $wiel->merk_naam;
?>

有人可以帮我解决这个问题,因为我无法让它工作

也许重新审视它会有所帮助

谢谢任何帮助

更新:

我现在得到了这种平静的代码,我将解释发生了什么以及我想要什么:

<div class="bandwielkolom">
                        <form action="index.php?lang=nl&p=<?php echo $_GET['p']; ?>#keuze" method="post">
                            <table class="bandentabel">
                                <tr>
                                    <th colspan="2">Op merk zoeken<a name="band"></a></th>
                                </tr>
                                <tr>
                                    <td>Merk:</td>
                                    <td>
                                        <select name="band_merk">
                                            <option value="0">- Merk -</option>
<?php
    $wielen = $wielclass->getMerkenWielen($website);
    $get_wiel = isset($_GET['wiel']) ? $_GET['wiel'] : '';
    $post_wiel = isset($_POST['band_merk']) ? $_POST['band_merk'] : '';
    foreach($wielen as $wiel) {
      if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        $selected = $post_wiel['wiel'] === $wiel->merk_code ? ' selected="selected"' : '' ;
      }
      else {
        $selected = $get_wiel['wiel'] === $wiel->merk_code ? ' selected="selected"' : '' ;
      }
      echo '\t\t\t\t\t\t\t\t\t\t\t<option value="' . $wiel->merk_code . '"' . $selected . '>' . $wiel->merk_naam . '</option>';
    }
?>
                                        </select>
                                    </td>
                                </tr>
                                <tr>
                                    <td>&nbsp;</td>
                                    <td><input type="submit" name="band_submit" value="Zoek"/></td>
                                </tr>
                            </table>
                        </form>
                    </div>
                                                            <?php
if(isset($_POST['band_submit']) && $_POST['band_merk'] == $wiel->merk_code)
    echo $wiel->merk_naam;
?>

进程代码:

if(isset($_POST['band_submit']) && $_POST['band_merk'] == $wiel->merk_code)
    echo $wiel->merk_naam;

我从我的数据库中得到一个带有四个选项的选择框,所以它工作正常。这些选项中包含图片和文本等数据。当我选择一个并按下提交时,他必须显示所选选项的信息,并且应该保持选中状态。

现在发生的事情是,当我选择一个选项并按下提交时,什么也没有发生......按钮正在工作,但我没有得到所选选项的任何输出,它不会保持选中状态。

做错了什么,但我不知道是什么

欢迎任何帮助:)

4

1 回答 1

1

你需要再次使用你的 for 循环来列出它们。

foreach($wielen as $wiel)
{
    echo $wiel->merk_naam;
}
于 2012-07-09T11:18:39.177 回答