首页 文章

PHP / HTML记住提交后的选定值 - 从MySQL填充的选项

提问于
浏览
0

我有以下代码,基本上是一个下拉菜单 . 当用户选择一个选项并提交选择时,将回显该值 . 选项值从MySQL表中获取 .

这是我的代码 .

<form name="hello" id="hello" method="post" action="chooser.php">
    <select name="primaryCatResult" id="primaryCatResult" >
        <?php
        while ($result = $sqlUpdatePrimary->fetch()) {
            $primary_category = $result['primary_category'];
            ?>
            <option  
            value = "<?php echo $primary_category; ?>"> 

            <?php echo $_POST['primary_category'] == $result['primary_category'] ?'selected="selected"' : '' ?>
            <?php echo $primary_category; ?></option>";
            <?php
        }
        ?>
    </select>
    <input type="submit" type="submit"/>
</form>
<?php

//Record and display selection
if(isset($_POST['primaryCatResult'])){
    echo $_POST['primaryCatResult'];
}
else {
    echo 'Choose a primary category';
}

上面的表单按照需要工作,除了我想要在选择选项并提交表单后,我希望下拉菜单中的选择保持选中状态 .

我不相信这行代码:

<?php echo $_POST['primary_category'] == $result['primary_category'] ?'selected="selected"' : '' ?>

错误日志文件中不显示任何错误

3 回答

  • 0

    您的 <option> 关闭后才能输出是否已选中 . 在开始 <option> 标记中关闭 > 之前移动所选内容 . 您还需要使用字段名称( primaryCatResult )代替列名 primary_category .

    应该是这样的:

    <option value = "<?php echo $primary_category; ?>"
    <?php echo $_POST['primaryCatResult'] == $result['primary_category'] ? 'selected="selected"' : '' ?>
    > 
    <?php echo $primary_category; ?></option>";
    
  • 0

    试试这个

    <option value="<?php echo $primary_category; ?>" 
    <?php echo $_POST['primary_category'] == $result['primary_category'] ? 'selected' : '' ?>>
    <?php echo $primary_category; ?></option>";
    

    您在 Value 后关闭了该选项 . 不确定你的逻辑本身是否正常工作 .

    你也可以做 selected 而不是 selected="selected"

  • 0

    该概念应该有效,除了代码具有提取“选定”语句的额外括号 .

    <?php
        while ($result = $sqlUpdatePrimary->fetch()) {
            $primary_category = $result['primary_category'];
            ?>
            <option value = "<?php echo $primary_category; ?>"
    
            <?php echo ($_POST['primary_category'] == $result['primary_category'] ? " selected='selected'>" : ">") ?>  // close bracket.
            <?php echo $primary_category; ?></option>";
            <?php
        }
        ?>
    

相关问题