0

我正在用 PHP 编写一些表单编码,当启用 JavaScript 时,我的一切工作都很好。但是从过去的经验和其他网站在禁用 JavaScript 时表现不佳的糟糕经验来看,我认为我会在当前项目中更加关注它。

关于input type="text"POST 字段,这不是问题。但是对于我碰巧正在使用的下拉菜单,我无法让它持续存在。好吧,我可以,但是默认选择不正确。这是一些代码...

基本下拉结构:

<select id="topic" name="topic">
    <option value="Select an option">Select an option</option>
    <option value="Topic A">Topic A</option>
    <option value="Topic B">Topic B</option>
    <option value="Topic C">Topic C</option>
</select>

我想也许如果我selected与 POST 数据混合,我可以让它像这样工作:

<select id="topic" name="topic">
    <option selected="selected" value="Select an option">Select an option</option>
    <option value=""><?php echo $_POST['topic']; ?></option>
    <option value="Topic A">Topic A</option>
    <option value="Topic B">Topic B</option>
    <option value="Topic C">Topic C</option>
</select>

但它不会持续存在;它只会回到默认的“选择一个选项”。

尝试这个也不起作用:

<select id="topic" name="topic">
    <option value="Select an option">Select an option</option>
    <option selected="selected" value=""><?php echo $_POST['topic']; ?></option>
    <option value="Topic A">Topic A</option>
    <option value="Topic B">Topic B</option>
    <option value="Topic C">Topic C</option>
</select>

它仍然存在,但没有正确的默认值。开始为空白(因为尚未输入 POST)。

我做了一些谷歌搜索,并没有真正找到对这种事情非常有用的东西,所以我不确定下一步该去哪里。有什么想法/建议吗?

非常感谢您!

4

2 回答 2

4

我通常会执行以下操作:

<select id="topic" name="topic">
<option value="Select an option">Select an option</option>
<?php
    $topics=Array("Topic A","Topic B","Topic C");
    foreach($topics as $topic){
        echo '<option value="'.$topic.'"'.($_POST['topic']==$topic?' selected="selected"':'').'>'.$topic.'</option>';
    }
?>
</select>

正如您所描述的那样,它会打印出选择框,但它会将 selected="selected" 属性添加到与您的 $_POST 变量匹配的选项中。

于 2012-06-27T00:06:58.400 回答
1
<?php 
$topic='';
if isset($_POST)
  if is_array($_POST)
    if isset($_POST['topic'])
      $topic=$_POST['topic'];
?>

<select id="topic" name="topic">
    <option value="Select an option">Select an option</option>
    <option value="Topic A"<?php if($topic=='Topic A') echo ' selected="selected"'; ?>>Topic A</option>
    <option value="Topic B"<?php if($topic=='Topic B') echo ' selected="selected"'; ?>>Topic B</option>
    <option value="Topic C"<?php if($topic=='Topic C') echo ' selected="selected"'; ?>>Topic C</option>
</select>
于 2012-06-27T00:09:38.077 回答