从数组中预填充选择标记

时间:2011-09-01 18:15:27

标签: php

我有这个阵列:

$profession_type = array(
   'Professional Engineers',
   'Accountants',
   'Insurance Professionals',
   'Attorneys',
   'Certified Hazardous Materials Managers',
   'Safety Professional',
   'Industrial Hygienists',
   'IT Professionals',
   'Human Resource'
);

我显示数组的内容作为select标记的选项:

                        <select name="profession_type[]">
                            <option value=""></option>
EOL;
    foreach ($profession_type as $p){
        print "<option value='" . $p . "'>" . $p . "</option>";
    }
print <<<EOL
                        </select>

我从未预先填充过具有动态值的下拉框。 $profession_type中的值将经常更改(最终将从数据库中的表中驱动),因此我无法对其进行硬编码。

编辑:对不起,我的问题不清楚。

  • 用户将从上一个屏幕中选择一个值(比如说它叫做id)并点击提交。
  • 在HTML呈现到屏幕之前,PHP根据他们选择的id进行存储过程调用。
  • 存储过程返回的值将预填充“profession_type []”表单字段。
  • 如果存储过程根据id返回“accountant”值为“profession_type”,我希望<option value='accountants' selected>Accountants</option>

那更清楚吗?遗憾。

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

这个怎么样:

print '<select name="profession_type">';
print '<option value=""></option>';
foreach ($profession_type as $p)
{
    if ($p == $chosen_profession)
        print "<option value='" . $p . "' selected='selected'>" . $p . "</option>";
    else
        print "<option value='" . $p . "'>" . $p . "</option>";
}
print '</select>';

答案 1 :(得分:1)

这可以在你的.php文件中找到:

<!-- some HTML here -->

<?php
$profession_type = [result_from_database_query] ?>

<!-- more HTML here -->

<select name="profession_type">
<?php
   foreach ($profession_type as $p){
        print "<option value='" . $p . "'>" . $p . "</option>";
    }
?>
</select>