dongye6377 2014-04-10 15:06
浏览 42
已采纳

从下拉列表中保留动态选择的值,但仍可以在提交后查看列表

I have got the following form:

<div id="Quick_find_container">
    <form action="" method="post" target="_self">
        <div id="qcategory_1">Product</div>
            <div id="qcategory">
                <select name="Category" class="dropmenu" id="Category"onchange="this.form.submit()">
                    <option value="">Any</option>
                    <option value="Keyboard"<?php if ($_POST['Category']=="Keyboard") {echo "selected='selected'"; } ?>>Keyboard</option>
                    <option value="Piano"<?php if ($_POST['Category']=="Piano") {echo "selected='selected'"; } ?>>Piano</option>
                </select>
            </div>
            <div id="qbrand_1">Brand</div>
            <div id="qbrand"><select name='Manufacturer' onchange="this.form.submit()">
<?php  
            echo '<option value="">Any</option>';

        $value = $_POST['Manufacturer'];

            while ($row = mysql_fetch_array($RS_Search)) {
                echo "<option value=" . $row['Manufacturer'] . " ' . (selected == $value ? ' selected' : '') . '>" . $row['Manufacturer'] . "</option>";
            }
?>
                </select>
            </div>
            <div id="qsubmit">
                <input name="Search2" type="submit"  id="Search2" value="Submit">
            </div>
        </form>
    </div>
    <?php echo $_POST['Category']; ?>
    <?php echo $_POST['Manufacturer']; ?>

Echo post Category and Manufacturer are purely to see what it is submitting.

My problem is the second drop down menu. I would like to display after something is selected what the selected value was. At the moment it just jumps back to the default value Any even though the out put of POST_[Manufacturer'] is correct. Is there a way to display the selected value like in the first drop down menu? I still would like to keep the values to choose from the database as well. But just display the selected value.

Any help welcome

  • 写回答

2条回答 默认 最新

  • douzhaxian1267 2014-04-10 15:11
    关注

    Your line that echos the option has a lot of problems with quotes. This will fix it:

    while ($row = mysql_fetch_array($RS_Search)) {
        $selected = $_POST['Manufacturer'] == $row['Manufacturer'] ? 'selected' : '';
        echo '<option ' . $selected . ' value="' . htmlspecialchars($row['Manufacturer']) . '">' . htmlspecialchars($row['Manufacturer']) . '</option>';
    }
    

    Side note: remember to use htmlspecialchars() or similar when outputting variables into HTML to prevent XSS.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 前端echarts坐标轴问题
  • ¥15 CMFCPropertyPage
  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码
  • ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题
  • ¥15 谁会P4语言啊,我想请教一下
  • ¥15 这个怎么改成直流激励源给加热电阻提供5a电流呀
  • ¥50 求解vmware的网络模式问题 别拿AI回答
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳