我已经读过使用session是保留PHP提交失败的值的一种方法。一旦将表单发送到服务器,数据就会被清除,以便返回数据,应该使用会话。我有一个国家列表的下拉列表。它包含超过60-80个国家。我使用三元条件使脚本更短,但它仍然很长且很无聊。
看起来像这样
<option value="Afghanistan" <?php echo (isset($_SESSION["errors"]) && $_SESSION["country"] == "Afghanistan") ? "SELECTED" : ""; ?> >Afghanistan</option>
<option value="Albania" <?php echo (isset($_SESSION["errors"]) && $_SESSION["country"] == "Albania") ? "SELECTED" : ""; ?>>Albania</option>
<option value="Algeria" <?php echo (isset($_SESSION["errors"]) && $_SESSION["country"] == "Algeria") ? "SELECTED" : ""; ?>>Algeria</option>
当我继续这个时,我认为必须有另一种方式。这是一个好方法吗?当我看到PHP脚本很长时,我倾向于认为我没有采取正确的方式。这个清单一直持续到现在。
答案 0 :(得分:1)
获取数组中的国家/地区列表,并循环显示它以生成选项标记,例如:
<?php
// Assuming $countries is an array of country names
foreach ($countries as $country) {
$selected = (isset($_SESSION['errors']) && $_SESSION['country'] == $country)
? 'SELECTED' : '';
echo "<option value=\"$country\" $selected>$country</option>\n";
}
?>