【问题标题】:How to retain Select option after submitting the form in php在php中提交表单后如何保留Select选项
【发布时间】:2014-04-19 20:01:46
【问题描述】:

我查看了几个社区论坛,但无法弄清楚如何在验证失败后保留选择选项值。

这是适用于我的代码,但提交按钮提交时值会消失。

<select id="service" name="service" class="searchoption">
             <option value="">-- Select Service Name --</option>
             <?php
             $resultservice = mysqli_query($con,"Select * from services") ?>
             <?php
             while ($line = mysqli_fetch_array($resultservice)) {
             ?>
             <option value="<?php echo $line['serviceid'];?>"> <?php echo $line['service'];?> </option>

            <?php
            }
            ?>
            </select>

这是我尝试过但对我不起作用的方法:

<select id="service" name="service" class="searchoption">
             <option value="">-- Select Service Name --</option>
             <?php
             $resultservice = mysqli_query($con,"Select * from services") ?>
             <?php
             while ($line = mysqli_fetch_array($resultservice)) {
             ?>
             <option value="<?php echo $line['serviceid']; if ($_POST['service'] == $service) {echo 'selected="selected"'} echo $line['serviceid']; ?>"> <?php echo $line['service'];?> </option>

            <?php
            }
            ?>
            </select>

【问题讨论】:

  • 您是否在同一页面提交表单?
  • 您在value 属性中回显selected 属性
  • 嗨,Awlad,感谢您的快速回复,是的,我正在提交到同一页面。
  • Rahil,我不明白你所说的我在呼应选定的属性值属性是什么意思。我该如何解决?

标签: php html web-applications


【解决方案1】:
<form action="" method="POST">
<select name="list" id="list">
    <option value="item1">item1</option>
    <option value="item2">item2</option>
    <option value="item3">item3</option>
</select>
<input type="submit" />
</form>

<script type="text/javascript">
     document.getElementById('list').value = "<?php echo $_POST['list']?>";
</script>

【讨论】:

  • 您好,感谢您的回复。我试过这个,它对我不起作用。
  • 我的意思是这样
  • 对不起,我弄错了,你需要把脚本标签放在表单标签之后。
  • 你的意思是打开Form标签之后?或关闭表单标签后?感谢您的快速回复。
  • 是在结束表单标记之后。
【解决方案2】:

可能是一个小错误,但注意到以下代码中的 > 无效

 <option value="<?php echo $line['serviceid']; if ($_POST['service'] == $service) {echo 'selected="selected"'} echo $line['serviceid']; ?>"> <?php echo $line['service'];?> </option>

试试这个

 <option value="<?php echo $line['serviceid']; if ($_POST['service'] == $service) {echo     'selected="selected"'}?> echo $line['serviceid']; <?php echo $line['service'];?>" </option>

希望对你有帮助

【讨论】:

  • 很好,我没有注意到这一点。我会删除它,然后再试一次。
  • 你好约翰,这对我不起作用。当我尝试您的建议时,页面根本没有加载。
  • 是的,很抱歉您在调用服务字符串之前关闭了标签,将 > 移到双引号之后
  • 你的意思是这样吗?
猜你喜欢
  • 1970-01-01
  • 2020-04-10
  • 1970-01-01
  • 2023-04-04
  • 2011-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多