运行时,下面的代码会显示一个包含多个选项的下拉列表,您需要在其中选择一个选项才能在代码所在的页面上按下一步按钮。
我想从页面中完全删除下面的代码,但是如果我只是删除它,则会收到一条错误消息,说"请选择x继续",它的行为就像从下拉列表中没有选择任何东西一样。
那么,即使我删除代码,我是否可以以某种方式使连接到列表的字符串的值始终为 1$option = "1";
? 我尝试了$shortUrlDomain = "1";
,但我仍然得到"如果我删除代码,请选择 x 继续。
另外,如果我不删除代码,我不会收到错误
">"请选择x继续"当然。
法典:
<select id="shortUrlDomain" name="shortUrlDomain" style="width: 100%;">
<?php
foreach ($shortUrlDomains AS $k => $shortUrlDomain)
{
// active domains only
if($shortUrlDomain['status'] != 'enabled')
{
continue;
}
echo '<option value="' . (int) $k . '"';
// selected option
if ($k == (int) $_REQUEST['shortUrlDomain'])
{
echo 'SELECTED';
}
echo '>';
echo $shortUrlDomain['domain'];
'</option>';
}
echo '</optgroup>';
?>
</select>
输出:
<select id="shortUrlDomain" name="shortUrlDomain" style="width: 100%;">
<option value="1">someting.com
<option value="2">someting2.com
<option value="5">someting3.com
<option value="8">someting4.com
</optgroup>
</select>
// selected option
$selectedk = (int) $_REQUEST['shortUrlDomain'];
if ($k == $selectedk>0?$selectedk:1)
{
echo 'SELECTED';
}
或更好
// selected option
$selectedk = (int) $_REQUEST['shortUrlDomain'];
if (($selectedk && $k == $selectedk) || (!$selectedk && array_key_first($shortUrlDomains)))
{
echo 'SELECTED';
}
这应该会有所帮助:
<select id="shortUrlDomain" name="shortUrlDomain" style="width: 100%;">
<?php
$forceAndShowOnlyK = 1;
foreach ($shortUrlDomains AS $k => $shortUrlDomain)
{
// active domains only
if($shortUrlDomain['status'] != 'enabled' || $k != $forceAndShowOnlyK)
{
continue;
}
echo '<option value="' . (int) $k . '"';
// selected option
if (($forceAndShowOnlyK && $k == $forceAndShowOnlyK) || (!$forceAndShowOnlyK && $k == (int) $_REQUEST['shortUrlDomain']))
{
echo 'SELECTED';
}
echo '>';
echo $shortUrlDomain['domain'];
echo '</option>';
}
echo '</optgroup>';
?>
</select>
我相信你在其他地方有一个验证条件,它给你Please select x to continue
消息。
如果您不想正确调整它,可以尝试在<select>
中删除该代码并添加默认选项,如下所示:
<select id="shortUrlDomain" name="shortUrlDomain" style="width: 100%;">
<option value="1" selected>something.com</option>
</select>