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

时间:2014-08-06 21:50:30

标签: javascript php html mysql

我有以下代码,基本上是一个下拉菜单。当用户选择一个选项并提交选择时,将回显该值。选项值从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 :(得分: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>";

答案 1 :(得分:0)

试试这个

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

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

此外,您可以selected而不是selected="selected"

答案 2 :(得分: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
    }
    ?>