echo "<td>Language</td>";
echo "<td><select id='language' name='language'>
<option value=''>Select...</option>
<option value='en_US'>English(US)</option>
<option value='en_AU'>English(AU)</option>
<option value='en_US'>English(UK)</option>
</select>
</td>";
我将代码片段封装在表单中以发布 php 文件,当我选择提交表单时,我可以看到这些选项。但是,在我单击按钮保存所选内容后,无论如何,上面的语言始终设置为第一个选项(en_US)。
最佳答案
您需要检查上次提交的值,以确定哪个选项应接收 selected
属性。您当前没有执行此操作,因此浏览器将第一个选项设置为所选选项。
// Define all languages
$l = array('en_US'=>'English(US)','en_AU'=>'English(AU)','en_UK'=>'English(UK)');
// Prepare an options variable
$o = "";
// Construct our options list
foreach ( $l as $k => $v )
$o .= sprintf("<option value='%s'%s>%s</option>",
$k, $k === $_POST["language"] ? " selected" : "", $v);
// Echo our Select menu
echo "<select id='language' name='language'>$o</select>";
关于php - 选择的选项总是落入第一个值,莫名其妙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10593586/