保持选项

时间:2014-05-17 16:47:44

标签: php html forms foreach

我有一个带有一些值的选择框,我将这些值插入数组中。

现在我想选择一些特定的选项,即使页面重新加载也要保持选项。

$logos =array('logo1', 'logo2', 'logo3');
echo '
<td class="jofftd">
<label>Platform</label>
   <select name="searchpt">
   <option value="0">All</option>
      ';
      foreach ($logos as $value)
      {
      echo '
      <option value="'.$value.'">' .$value . '</option>
      ';
      }
      echo '
   </select>
</td>';

我需要做这样的事情:

foreach ($logos as $value)
      {
      echo '
      <option';

      if ($value == $value) echo 'selected="selected"'; 

      echo 'value="'.$value.'">' .$value . '</option>

      ';
      }

但它不起作用。

感谢。

3 个答案:

答案 0 :(得分:0)

如果没有别的,你至少缺少一个空格字符:

 <option';
      if ($value == $value) echo 'selected="selected"'; 

这将产生

 <optionselected="selected"

这不是完全有效的HTML。

另外,$value==$value将始终为真,因此即使标签中有适当的间距,您也会将所选选项的全部标记为已选中。您需要将循环中的$value与原始形式的值进行比较,例如

if ($value == $_POST['field_from_previous_form'}) { ... }

答案 1 :(得分:0)

假设您使用的是POST方法表单,代码看起来像这样(注意:未经测试)

  foreach ($logos as $value)
    {
        $selected = ($value == $_POST['searchpt']) ? ' selected' : '';
        echo '<option'. $selected . ' value="'.$value.'">' .$value . '</option>';
    }

答案 2 :(得分:0)

$ value == $ value将始终为true,并且它将始终添加selected =“selected”

使用字符串连接形成选择表单字段。

    <?php 

$logos =array('logo1', 'logo2', 'logo3');

$value = 'logo1';

$str = '<select name="searchpt"><option value="0">All</option>';
foreach ($logos as $value)
      {
      $str.='<option ';

      if ($value == 'logo1') 
      $str.=' selected="selected "'; 

      $str.=' value="'.$value.' ">' .$value . ' </option> ';
      }
$str.='</select>';

echo $str;

?>

希望此代码段能解决您的问题