【问题标题】:Get output when submit dropdown form提交下拉表单时获取输出
【发布时间】:2012-07-09 11:08:49
【问题描述】:

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

<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;

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

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

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

欢迎任何帮助:)

【问题讨论】:

    标签: php mysql database forms drop-down-menu


    【解决方案1】:

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

    foreach($wielen as $wiel)
    {
        echo $wiel->merk_naam;
    }
    

    【讨论】:

    • 是的,我也用过,但后来我得到了我所有的名字,而不是选择的名字
    猜你喜欢
    • 1970-01-01
    • 2016-03-31
    • 2014-04-27
    • 1970-01-01
    • 1970-01-01
    • 2020-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多