alikitto Asked:2020-06-10 03:43:21 +0000 UTC2020-06-10 03:43:21 +0000 UTC 2020-06-10 03:43:21 +0000 UTC 在表单中选择的选择 772 有一个带有表单的页面,用户可以在其中输入日期。当您单击该按钮时,会计算所需的数据,但会重置表单。也就是说,选择选项的第一个值再次显示在表单中。用户选择的选项必须具有所选属性,单击按钮后它们将再次显示在表单中。我这样做: <option value="05" <?php if ($_POST["days"] == 5) {echo "selected";} ?>>5</option> <option value="06" <?php if ($_POST["days"] == 6) {echo "selected";} ?>>6</option> 但是线太多了,还有别的办法吗? php 3 个回答 Voted Maxim Suhov 2020-06-10T04:19:30Z2020-06-10T04:19:30Z 它可以像这样缩短: <option value="05" <?= $_POST["days"] == 5 ? "selected" : "" ?>>5</option> 理想情况下,应该有一个“小部件”可以接受所有元素的数组,其中一些元素具有“已选择”属性例如: $elements = [ ['value' => '05', 'selected' => false], ['value' => '06', 'selected' => true] ]; <?= Widget::dropDownList($elements);?> 然后该方法Widget::dropDownList应该输出标签select。 artbur 2020-06-10T07:48:47Z2020-06-10T07:48:47Z 您可以根据您的任务调整此方案。仅在您的情况下通过 foreach 遍历列表 $selected[$show]=' selected="selected"'; echo '<select name="show">'."\n"; echo '<option value="1"'.$selected['1'].'>Активен</option>'."\n"; echo '<option value="0"'.$selected['0'].'>Не активен</option>'."\n"; echo '</select>'."\n"; unset($selected); Best Answer Sergey Semushin 2020-06-10T19:34:52Z2020-06-10T19:34:52Z 如何循环输出所有这些行? <? for ($i = 1; $i<=31; $i++) { ?><option value="<?=$i?>"<? if ($_POST["days"] === $i) { ?> selected<? } ?>><?=$i?></option><? } ?>
它可以像这样缩短:
理想情况下,应该有一个“小部件”可以接受所有元素的数组,其中一些元素具有“已选择”属性例如:
然后该方法
Widget::dropDownList应该输出标签select。您可以根据您的任务调整此方案。仅在您的情况下通过 foreach 遍历列表
如何循环输出所有这些行?